级联对象
在同一个模型库中,我们可以管理多种类型的对象,例如Windows对象、Java对象、跨平台的Qt对象、ATK对象、图案对象和虚拟控件等。通常情况下,一棵控件树中的所有节点都是相同类型的对象,但我们也可以在一个树节点下添加不同类型的对象,这种方式被称为级联对象。级联关系允许在控件树中建立层次关系,有助于更加精准地定位和操作控件。
级联对象意味着某个对象是另一个对象的子节点。当我们寻找某个控件时,首先通过父对象进行匹配,找到父对象后,再在其下的区域中通过子对象进一步定位子控件。
常见级联类型和应用场景
同类技术类型的对象级联
这是最常见的情况,比如多个Windows对象或多个Qt对象级联。它们通常是通过侦测器直接从应用程序中侦测并生成的。所有节点都属于同一类技术类型,层次关系简单明了。父节点为对象识别技术,子节点为图案对象
这种情况先利用对象识别技术找到父控件,然后在父控件的可见区域内使用图案识别技术定位子控件。由于父控件的位置已经确定,这样可以大大缩小图案匹配的范围,提高图案匹配的速度和准确性。父节点为对象识别技术,子节点为虚拟控件
在这种情况下,父控件定位后,子控件是虚拟控件。虚拟控件允许操作父控件的特定区域,而不是对整个控件进行操作,适用于局部区域的精确控制。对象识别技术 + 图案控件 + 虚拟控件的多层级联
父节点使用对象识别技术定位,子节点通过图案控件进一步缩小范围,最后通过虚拟控件定位具体操作区域。这种多层次级联能提供极高的精确性,适合复杂界面操作。对象识别技术 + 虚拟控件 + 图案控件的组合级联
在这种级联结构中,父节点使用对象识别技术定位控件,子节点是虚拟控件,进一步缩小操作区域,孙子节点再通过图案控件对这个局部区域进行图像匹配。这种方式能在复杂环境下提升操作效率。图案控件级联图案控件
图案控件级联意味着先找到一个较大范围的图案控件,然后在此图案区域内进一步匹配较小的图案控件。这种方式常用于界面上的图像元素匹配。
注意事项与性能影响
通常来说,级联对象的层次越多,系统需要进行的搜索操作次数也越多,处理时间可能会增加。然而,某些情况下,例如对象识别技术与图案对象的结合,可以有效缩小图案匹配的范围,减少搜索时间,从而提高整体效率。