概述
控件是机器人模拟人进行界面自动化操作的基础对象,代表其在执行一个应用(流程)时可能涉及的各类“界面元素”,如一个网页中的输入框、提交按钮、页面标题、客户端上的登录按钮等,都可以被视作一个控件。
您在开发一个自动化流程时,任何一个具体操作,需要先将相关元素捕捉成为“控件”,后才能操作该控件完成所需动作。
产品支持两类控件捕捉方式:
标准模式(含 自动匹配模式、win32-UIA模式、win32-MSAA模式)。此类方式下,可提取目标软件界面的界面结构,基于界面结构进行各种操作。
CV模式(Computer Vision)。部分软件界面不支持标准模式,可使用CV模式进行操作。
使用时,建议先使用 自动匹配模式、win32-UIA模式、win32-MSAA模式等标准模式,如果不能达到预期,最后再使用CV模式
标准模式
操作过程
本章节以 步骤二:搜索“阿里云”所需的控件为例,介绍捕捉控件的主要操作:
浏览器先打开所需页面,在编辑器中的控件面板中点击
开始捕捉,出现控件捕捉窗口。
点击
捕捉控件按钮(或使用F2键),将鼠标移动到需捕捉的控件上,待蓝框锁定目标控件,点击鼠标左键即可完成捕捉。蓝框锁定过程如下所示。
在编辑控件窗口中,输入控件名称(在下图中序号①),然后进行验证:
选择动作(在下图中序号②),本次选择输入文本,测试能否正常向百度输入框输入文本;
接着在动作参数中,填入输入内容(测试)(在下图中序号③);
然后点击
验证动作按钮(在下图中序号④),发现文本输入成功,同时验证结果显示验证成功(在下图中序号⑤);以上步骤证明了捕捉到的控件可正常使用,点击保存(在下图中序号⑥)。

同理可捕捉搜索按钮,在验证的时候,选择动作为“点击”,验证成功后保存控件。

选择合适的捕捉条件
在使用过程中,会遇到某个控件上次能够正常运行,再次运行时就报错提示找不到控件、或控件超时的问题,原因可能如下:
没有为控件选择合适的属性,导致在不同情况下,属性内容发生了变化,因此无法找到控件。
目标操作软件的界面更新,导致界面元素发生了变化,之前捕捉条件不适合新页面。
因此核心是需要为控件选择合适的捕捉条件,可在编辑器的捕捉控件窗口中、通过编辑属性完成设置。
捕捉控件时,本产品会根据当前页面情况自动选择部分属性,此时选择的属性仅能满足当前情况,并不能够满足扩展要求,需要开发者根据实际情况进行优化、调整。
选择合适的捕捉条件(编辑属性)的基本原则
从最下面的属性开始选择和编辑
避免使用与当前页面内容强相关内容,适当使用包含
每次修改后,通过高亮 按钮或者快捷键F5 来验证控件是否有效
多使用不同情况进行测试
举例
本例的目标是获取股票价格,控件捕捉时自动选中的属性如下所示


从上图可见,最后一层的几个属性
默认选择的outertext,不适合作为捕捉条件。原因该属性值是动态的,并且也是需求希望获取的股票价格
class,不适合直接作为捕捉条件。可见在涨、跌情况下class的值不同。
根据基本原则,可以有两种控件属性的选择方案
方案1:分析class的特点,使用“包含”功能,值填入value

方案2:从下向上选择属性进行尝试,结果如下:


说明对同一个控件的属性选择方案不止一种,开发者可根据实际情况权衡。
捕捉相似控件
在数据采集等场景中,会需要操作一个页面中的多个相似的元素,如商品列表页、查询结果等。本章节介绍如何使用“相似控件”功能批量进行处理。
使用过程:
先使用
捕捉控件,抓取页面上一个元素再使用
捕捉相似控件,抓取页面上另一个元素(注意不能是同一个)产品会分析两次捕捉的属性信息,自动选择属性
重要使用
捕捉相似控件,需要确保第一次捕捉的元素和第二次捕捉的元素具有相似性,否则会提示“合并失败,提供的选择器不具备相似性”。例如搜索引擎的结果中,经常会有一些付费投放的信息穿插在搜索结果中,如果对这两类元素放在一起进行相似控件捕获,由于元素结构的不同,无法生成相似控件。
示例:获取商品名称
目标获取商品列表中的商品名称,如下所示

首先点击
捕捉控件,捕捉第一个商品的名称(图片下面的文字)
点击
捕捉相似控件按钮,捕捉第二个商品的名称。产品根据两次捕捉结果对属性进行了修改,如下图。
在验证控件中,点击
高亮控件按钮,可以看到页面中多个商品标题被选中。
同时,也会显示找到的控件数量,开发者需要根据数量,确定该控件抓取的数量是否正确。
重要捕捉相似控件功能自动生成的属性,不能保证所有场景下的有效性,因此还需要开发者根据实际情况进行调整,详见选择合适的捕捉条件。
控件保存后(本例中控件名为“商品标题”),在流程中使用该控件分别如下:
重要控件列表的索引从1开始。
可视化开发模式
说明常用的可视化组件包括:循环相似控件(网页),获取相似控件数量(网页),循环相似控件(窗口),获取相似控件数量(窗口)等。
编码开发模式
page = rpa.app.chrome.catch('https://s.taobao.com/search', mode='url', pattern='contain') num = page.count('商品标题') for i in range(1,int(num)+1): title = page.text(element='商品标题',index=i) print(title)
示例:获取多个标题
CV模式
CV模式在RPA客户端4.8.3版本以后支持,为原OCR录制模式的升级版
CV图像录制模式主要用于目标界面元素不可被标准模式解析的情况;此方式依赖开发者截取的软件界面图像,运行时通过对比来定位所需操作的界面元素。
操作过程
在点击
捕捉控件按钮前,在右侧模式列表中下拉选择CV录制模式
点击
捕捉控件,对您希望操作的区域进行截图,鼠标释放即为完成截取。在捕捉控件窗口中:选择
编辑控件(在下图中序号①),查看您截取的目标区域,在定位图像(在下图中序号②)中可以通过拖动锚点的方式来调整在目标区域中操作的具体位置选择
验证控件按钮(在下图中序号③),选择一个针对该控件的验证动作,并再配置该动作所需的参数点击
验证动作按钮(在下图中序号④),即可在界面中查看您针对该目标区域的验证是否满足预期若您验证成功,请填写控件名称,为该控件选择分组(非必要),并点击保存
后续您可以在编辑器的控件面板中查看,也可在流程开发过程中直接在控件列表中选择该控件。

CV控件的使用示例详见 使用CV模式操作钉钉客户端发送消息。
使用建议
编辑器开发过程、机器人运行过程所在的电脑,至少需要保证桌面缩放一致
在Windows中可通过“设置-屏幕”查看桌面缩放

编辑器中可查看CV捕捉的控件截取时的桌面分辨率和缩放
说明编辑器版本需4.11.0.1067及以上,可在捕捉控件窗口中查看分辨率和缩放。
CV捕捉区域不要与内容强相关
CV控件捕捉时,框选页面中独特的、纹理丰富的区域












