UiBot进行无界面元素目标的图像自动化操作
在日常工作中,我们时常会遇到一些软件,它们的界面元素无法被自动化工具直接识别。比如一些虚拟机、远程桌面以及基于DirectUI技术的应用程序。这时候,UiBot提供的“界面图像自动化”功能就显得尤为重要了。今天我们来聊聊如何在UiBot中利用界面图像自动化功能,处理那些无法直接定位的界面元素。
为什么不能使用界面元素?
在上一章中,我们讨论了界面元素的自动化操作,通过调用界面元素所在软件提供的接口来实现操作。然而,不是所有的软件都会提供这样的接口,特别是以下几种情况:
- 虚拟机和远程桌面:例如Citrix、VMWare、Hyper-V、VirtualBox等,它们运行在独立的操作系统中,与UiBot所在的操作系统隔离开来,因此UiBot无法直接操作这些环境中的界面元素。
- 基于DirectUI的软件:许多现代应用为了追求美观,采用了DirectUI开发框架,这些界面的元素是“画”出来的,并没有对外开放操作接口,UiBot自然无法识别这些元素。
- 游戏:由于游戏界面的动态性和高时效性,界面元素的操作更是复杂多变,通常不适合直接使用RPA工具进行自动化操作。
无目标命令的运用
在面对无法识别界面元素的情况时,UiBot提供了一组“无目标命令”,这些命令无需依赖界面元素来实现操作。关键的无目标命令包括“模拟移动”和“模拟点击”,它们允许我们在指定的坐标上执行鼠标操作。
使用屏幕坐标系
在Windows操作系统中,每一个屏幕上的点都有唯一的坐标(x, y),通过这两个数值,我们可以在屏幕上准确地定位到特定的点。在UiBot中,我们可以使用这些坐标来实现无目标操作。比如,如果我们知道一个输入框的中心坐标为x:200, y:300,就可以通过“模拟移动”和“模拟点击”命令精确地操控该输入框。
然而,固定的坐标只适用于特定的场景,因为在Windows的多窗口环境中,界面元素的位置常常会发生变化。因此,我们需要动态地获取元素位置,而不是依赖固定的坐标。
图像命令的使用
UiBot中的图像命令是界面图像自动化的核心,通过“查找图像”命令,我们可以在屏幕上搜索特定图像,并获取其坐标。
比如,在Steam的登录界面中,我们无法直接获取“登录”按钮的位置,但是可以使用“查找图像”命令找到它,并模拟点击。
步骤示例:
查找图像:首先,在“流程创造者”中插入一条“查找图像”命令,并通过“从界面上选取”来指定要查找的图像及其区域。
模拟移动和点击:通过“模拟移动”命令将鼠标移动到查找到的图像坐标,然后用“模拟点击”执行操作。
图像命令也可以使用“点击图像”这类组合命令来简化流程操作,它集成了“查找图像”、“模拟移动”和“模拟点击”功能,大大提高了操作效率。
实用技巧
虽然图像自动化功能强大,但我们仍需注意以下几点:
选择小型截图:截图时尽量选取较小的关键特征部分,减少不必要的细节,可以提高查找速度和准确性。
调整相似度:适当调整相似度参数(通常设为0.9),以平衡“错选”和“漏选”的风险。
保持分辨率一致:确保开发和运行流程的计算机分辨率及缩放比例一致,避免因界面变化导致命令失效。
智能识别
在处理无法识别的界面元素时,UiBot的智能识别功能提供了一种更高效的方法。通过“智能识别屏幕范围”命令,UiBot可以分析屏幕图像,识别出潜在的界面元素。
如何使用智能识别?
智能识别屏幕范围:插入“智能识别屏幕范围”命令,选择需要识别的屏幕区域。
后续操作:在智能识别的基础上,使用“智能识别后点击”等命令,进行点击、输入等操作。
如果界面上存在多个相似元素,UiBot可以利用“锚点”技术,通过锚点的独特性来定位特定元素。
最后
在我看来,界面图像自动化和智能识别是处理无法直接获取界面元素的理想解决方案。无论是图像命令还是智能识别功能,都可以帮助我们在复杂环境中实现高效自动化操作。
然而,考虑到图像自动化的一些局限性,能用界面元素的场景还是应优先使用界面元素自动化,以获得更好的性能和可靠性。通过灵活运用这些工具,我们可以极大地扩展UiBot的应用范围,实现更复杂的自动化任务。