一个简单的示例:变量
1、前言
在上文 一个简单的示例:网页元素 中,我们完成了以下内容:
- 在花漾浏览器中新开一个标签页
- 在新开的标签页中访问 baidu.com
- 在百度首页中定位到Search框,并输入检索词
- 按回车进行检索
本文将对上述示例进行扩充,增加以下内容:
- 设置输入变量,用来接收用户的输入参数从而增强流程的弹性
- 循环遍历并打印所有的搜索结果
通过本文的阅读,您将了解:
- 如何声明变量
- 如何通过输入变量接收用户的赋值以增强流程的弹性
- 如何使用循环语句
2、脚本语言与变量
花漾灵动RPA使用的脚本语言是 JavaScript(以下简称JS)。同JS一样的是,在花漾灵动RPA中可以声明变量,变量是存储数据值的容器,所有变量必须拥有唯一的名称作为标识, 我们称其为标识符。标识符可以是短名称(比如 x 和 y),或者更具描述性的名称(比如 age、name、totalVolume等)。
花漾RPA将变量分为四类,分别是:
- 临时变量 :临时变量是在某个表达式或者某个代码片断中声明的变量,临时变量的声明周期仅在此表达式或者代码片断中有效
- 系统变量 :系统变量是系统预置、全局(跨主子流程)有效、只读的变量;系统变量主要用来传递当前上下文信息,如:您可以通过
account.name
查询当前正在执行此流程任务的浏览器分身名称 - 流程变量 :流程变量是由用户自行声明的、只在当前流程(不跨流程)内有效、可读写的变量
- 输入变量 :输入变量是一种特殊的流程变量,它也是由用户自行声明、只在当前流程(不跨流程)内有效、可读写的变量,但与流程变量不同的是,在流程执行前会要求用户对每个输入变量给予明确的赋值以增强流程的弹性。
《流程定义中的系统变量、流程变量与输入变量》
3、变量的声明
在本示例中,我们希望用户在百度首页中进行检索,并能够循环遍历所有的搜索结果。首先,我们需要声明两个输入变量,分别是:
- keyword :用来存储搜索的关键词
- matching :用来匹配搜索结果中是否包含此字符串
以下是输入变量的声明界面:
《在流程定义中声明变量》
这里需要提前说明一下,一旦声明了流程变量,当流程发布后,在执行此流程时的向导界面中会要求用户对每个输入变量进行赋值,如下图所示:
《流程执行时需要对输入变量进行赋值》
4、滚动页面
现在来观察百度的检索页面,我们希望循环遍历所有搜索结果的标题,如下图所示:
《循环遍历所有搜索结果的标题》
这里需要和大家普及一个网页加载的常识,当我们循环遍历一个网页中的某些节点时,最好先对此网页进行滚动(如滚动到底部), 这样可以有效避免网页没有加载完全导致流程失败。因此,我们在这里放一个“滚动页面”的流程节点:
《滚动页面至底部》
5、捕获网页元素列表
通过滚动页面节点,我们基本可以确保搜索结果都已经被正常加载。 此时,请拖入“获取元素列表”节点,此流程节点要求在页面节点中选择一个“网页元素列表”,下面看一下如何捕获一个“网页元素列表”:
Step1 :请点击“从网页元素库中选择”,并唤醒“元素捕获器”;Step2 :在百度搜索结果页面中点击第一个搜索结果;Step3 :点击“捕获相似元素”
《通过元素捕获器捕获第一个网页元素》
Step4 :在百度搜索结果页面中点击第二个搜索结果:
《通过元素捕获器捕获第一个网页元素》
我们可以看到,元素捕获器根据2个相似元素的共性,匹配出10个类似元素,这10个类似元素就是我们希望捕获的“网页元素列表”:
《通过元素捕获器捕获网页元素列表》
最后,通过“获取元素列表”这个流程节点,将捕获的网页元素列表提取至一个变量 web_element_list ,显然,这个变量是一个数组,数组内每一个值都是一个网页元素, 也就是每一个搜索结果:
《将捕获的网页元素列表提取至变量》
为方便您的理解,我们将捕获“网页元素列表”的动作制作了一个GIF动画,供您参考:
《捕获网页元素列表》
6、循环遍历搜索结果
现在来循环遍历所有搜索结果的标题,请拖入“遍历循环数组”节点,待遍历数组是刚才将网页元素列表提取至的变量 web_element_list , 该流程节点将依次遍历此数组,并将每一个循环项提取至变量:loop_item :
《循环遍历数组的流程节点》
请再拖入流程节点“获取元素信息”,请注意,此流程节点一定要拖入至“循环遍历数组”节点的循环体内。在此流程节点中, 将获取每一个循环项(显然它是一个网页元素)的元素文本内容,并将文本内容提取至变量 web_element_attribute :
《获取元素信息的流程节点》
最后,我们通过打印日志节点输出搜索结果,请注意,此处用 {web_element_attribute} 来引用变量的值:
《打印日志的流程节点》
最后,我们来运行预览,可以看到流程的输出结果,将搜索结果的文本内容依次打印出来:
《流程的输出结果》
7、总结
本文带领大家了解了如何声明变量,以及通过输入变量来接收用户的赋值从而增强流程的弹性,关于变量更详细的介绍请您阅读 变量 一文。
下一章节将带领大家了解如何使用复杂的循环语句, 以及通过条件判断与变量赋值编写业务逻辑,建议您继续阅读下一章节:一个简单的示例:条件判断 。
最后,针对《一个简单的示例》系列文章所介绍的内容,我们为您准备了以下视频教程,辅助您了解相关内容: