技巧实践-循环

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

技巧实践-循环

前言

本章节提供的截图和数据都是测试数据,如有雷同实属巧合,特此声明

本章节主要讲解循环在网页下的使用,以及在相关场景下的应用循环使用的场景很多,例如有表格,分页,列表,下拉框循环;List循环;文件夹/文件循环;重试逻辑循环等等

本章节使用浏览器:Chrome浏览器(使用Chrome进行自动化操作时需先开启插件)


本章节内容如下:

循环组件(For,While)

循环表格

循环分

循环列表

循环下拉框


一、循环组件

在苍穹RPA设计器中提供了两个循环,分别是For和While

1、For循环

For循环不需要指定下标和循环条件,会自动遍历集合的每一项,当集合项遍历完成后,循环会自动结束

集合:需要遍历的数据集合,常用的是List

过程:循环体要操作的步骤,遇到Break组件时会结束循环

元素:遍历集合时生成的下标项引用名称自定义名称(例如:row

、column、element、file、index),相当于List[i](其中i为1,2,3……n,n是集合的长度)。定义好名称之后可以在过程中对其进行访问(例如:row[标题])

2、While循环

While循环需要指定循环的条件,当条件满足时会进入循环体,当条件不满足时会结束循环

条件:布尔值,支持变量(例如index==1,index>0,True,False,text==内容)

过程:循环体要操作的步骤,遇到Break组件时会结束循环


二、循环表格

网页的表格指的是table元素(结构一般包括table>thead|tbody>tr>th|td

流程思路:拾取表格组件+for循环

业务要求:获取表格数据,并去除汇总行

页面如下

Html元素如下

流程图如下

输出结果如下

流程详解:

使用“拾取表格”组件,选中表格:拾取表格组件只能用于网页的table元素)

使用“DataFrame转List”将上一个步骤的df转成list(直接连线即可)

使用For循环对list进行遍历,并在循环体内添加一个判断:row[0]!='本页汇总:'并在真的节点上进行输出


三、循环

在获取数据表格时,往往会存在分页

流程思路:可使用While循环+IF判断处理(是否最后一页)

页面如下:

业务要求:获取每一页的表格

流程图如下:

流程步骤详解:

第一步:While循环,并把条件设置为True

第二步:添加序列,分两条分支:表格处理、分页处理注:序列的执行顺序是从上到下)

第三步:设置分页退出条件,上图使用的是“元素是否存在”来判断是否已经到最后一页,最后一页的下一页元素的属性会有所不同,有些是灰色的,有些不可见,可以根据这些元素特征来判断。


四、列表循环

什么是列表: 展现的显示结构是有规律的(横向排列、纵向排列)的元素(例如:div,dl-ddul-li,select-option,这里以ul-li做为讲解

业务要求ul底下的所有li做一次鼠标点击(一般在查询页面会有这种需求,要求遍历整个列表的数据

页面展示如下

Html展示如下

流程思路:

第一步:拾取两个li元素,并观察元素css-selector的差异

从差异可以看出:第一个li最后一段css表达式为Li:nth-of-type(1),第二个li最后一段css表达式为Li:nth-of-type(2),以此类推,第Nli最后一段css表达式为Li:nth-of-type(n)

nth-of-type表示的含义如下:

更多详情参考链接https://www.w3school.com.cn/cssref/css_selectors.asp

第二步:声明一个变量lv_index,默认值为1

第三步:添加一个While循环,并设置条件为True

第四步:添加一个元素是否存在和IF分支,条件为True时进行鼠标点击,并将lv_index加1条件为False时,终止循环元素是否存在”和“鼠标点击”属性表需要使用变量lv_index代替最后一个可变的数字)

流程图如下:


五、列表循环(进阶)

上一个列表循环,需要不停的判断元素是否存在,会造成流程运行时间的增加,因此做出以下优化

流程图如下:

流程步骤详解:

第一步:使用“获取控件html”获取ul元素的outerhtml内容

第二步:使用“代码块”获取html里li的内容(记为lv_list代码块内容如下:

获取到的内容(类型:List)如下:

正则表达式参考链接https://www.runoob.com/python/python-reg-expressions.html

第三步:添加一个For循环,并设置集合为range(1,len(lv_list)+1)(注:range默认的起始坐标为0,结束坐标为设置的值-1,所以这里起始坐标需要改成1,结束坐标需要加1)

第四步:将For循环的元素index传到li元素的属性


六、循环下拉框

什么是下拉框:标签为Select的元素为标准下拉框(有些别的元素长得像下拉框,其实是列表)

业务需求:对下拉框里的每一项进行选中

页面展示如下:

Html元素如下:

流程思路:使用代码块获取Select元素底下所有option的value或者text,使用for循环对select元素数量进行value或者text的设置(根据需求而定,注意text可能存在相同,最好是设置value)

流程图如下:

流程详解如下:

第一步:获取Select的html元素

第二步:使用正则表达式获取html里option的value

第三步:添加一个For循环,循环体使用Select组件设置value值

选择模式:val为value值,text为文本,index为序号

选项:设置的内容(optionValue是For循环里定义的元素)


技巧实践-循环

前言本章节提供的截图和数据都是测试数据,如有雷同实属巧合,特此声明本章节主要讲解循环在网页下的使用,以及在相关场景下的应用;循环使...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息