- 发行说明
- 入门指南
- 设置和配置
- 自动化项目
- 依赖项
- 工作流类型
- 文件比较
- 自动化最佳实践
- 源代码控件集成
- 调试
- 诊断工具
- 工作流分析器
- 变量
- 参数
- 导入的命名空间
- 录制
- 用户界面元素
- 控制流程
- 选取器
- 对象存储库
- 数据抓取
- 图像与文本自动化
- Citrix 技术自动化
- RDP 自动化
- Salesforce 自动化
- SAP 自动化
- VMware Horizon 自动化
- 日志记录
- ScreenScrapeJavaSupport 工具
- Webdriver 协议
- 测试套件 - Studio
- 扩展程序
- 故障排除
用户界面自动化
有时,通常的手动例程并不是自动化的最佳方式。在采用某种方法之前,请仔细探索应用程序的行为和 UiPath™ 集成/功能。
当机器人和应用程序在同一台计算机上运行时,最好使用用户界面自动化,因为 UiPath 可以直接与应用程序背后的技术集成,以识别元素、触发事件并在后台获取数据。
UiPath 可以采用三种方法在应用程序上触发“单击”或“键入信息”活动。在处理用户界面自动化的所有活动中,这些活动都显示为属性。
“模拟键入”和“模拟单击”属性
如果选择了“模拟键入”或“模拟单击”属性,Studio 会将其钩入应用程序,并触发指定用户界面元素(按钮或文本框)的事件处理程序。结果始终依赖于目标技术,例如网页浏览器或业务应用程序。
为以下活动启用“模拟键入”和“模拟单击”时,强烈建议您在执行之前查看目标用户界面元素的状态:
同样的建议也适用于下列应用,因为它们默认使用“模拟键入”和“模拟单击”属性,且不支持更改:
“如果禁用则更改”属性
该属性指示目标活动是否与禁用的元素进行交互。请注意,仅在启用“模拟类型”或“模拟单击”时才考虑此属性。您可以找到以下活动的“如果禁用则更改”属性:
“发送窗口消息”属性
如果选择了“发送窗口消息”属性,那么 Studio 会将事件详细信息发布到应用程序消息循环,应用程序的窗口过程在内部将其分发给目标用户界面元素。
如果没有选择上述选项,Studio 会通过硬件事件向系统驱动程序发送信号,并让操作系统将详细信息分发给目标元素。
应按照显示的顺序来尝试这些方法应,因为“模拟单击”和“发送窗口消息”属性速度更快,并且在后台也能工作,但它们主要依赖于应用程序背后的技术。
硬件事件 100% 起作用,因为 Studio 执行的操作就像人工操作者一样,例如移动鼠标指针和单击特定位置。但是,在这种情况下,将要自动化的应用程序需要在屏幕上可见。这可以视为一个缺点,因为存在用户可能会干扰自动化的风险。
有时,自动生成的选取器会提出易失性属性值来识别元素,并且需要人工干预来校准选取器。在开发、测试和生产环境中,无论登录应用程序的用户名是哪个,可靠的选取器在所有情况下应该每次都能成功识别同一元素。
以下是关于如何改进“选取器编辑器”或“UI Explorer”中的选取器的一些技巧:
- 将包含易失性值的属性替换为可能更稳定且有意义的属性。
- 将属性值的变量部分替换为通配符 (*)。
- 如果属性值都是通配符(例如
name=’*’
),那么应该删除该属性。 - 如果编辑属性没有作用,请尝试添加更多的中间容器。
-
避免使用
idx
属性,除非它的值是一个非常小的数字,如 1 或 2。
在上面的选取器中,我们注意到页面标题引用了选取器被录制的时间,还有一些属性具有看似随机的 ID。调整属性,我们可以找出一个比提议的 UiPath 录制器更好的选取器。
与文件路径类似,选取器可以是完整的,也可以是部分的(相对)。完整选取器是从窗口或 HTML 标识符开始,而且包含在整个桌面上查找元素所需的所有信息,而部分选取器仅在附加/容器中有效,附加/容器指定了元素所属的顶级窗口:
- 打开浏览器
- 打开应用程序
- 附加浏览器
- 附加窗口
以下提供了有关完整选取器与部分选取器对比的详细信息。
使用带有部分选取器(而非带有完全选取器)的容器有如下优势:
- 以直观方式将同一应用程序上运行的活动进行分组。
- 速度稍微快一点,不要每次都寻找顶部窗口。
- 在需要手动更新的情况下,可以更容易地管理顶级选取器。
- 在处理同一应用程序的两个实例时必不可少。
如果没有其他方法来识别屏幕上的用户界面元素(比如选取器或键盘快捷方式),图像识别是自动化应用程序的最终方法。由于图像匹配要求元素在屏幕上完全可见,并且要求所有可见的细节在运行时与开发期间相同,因此利用图像自动化来解决问题时,应该格外小心,以确保过程的可靠性。如果选择的图像数量超过或少于所需要的数量,可能会导致找不到图像或出现误报。
图像匹配对于环境变化很敏感,如桌面主题或屏幕分辨率。当应用程序在 Citrix 中运行时,分辨率应大于或等于录制工作流时的分辨率。否则,可以通过稍微降低捕获的图像精确系数来补偿小图像失真。检查应用程序布局如何调整自身以适应不同的分辨率,以确保视觉元素的接近性,特别是在基于坐标的技巧(如“相对单击”和“相对抓取”)的情况下。
如果自动化支持不同的分辨率,则并行录制可以放置在“选取分支”活动中,并且机器人使用任一匹配。