侦测控件对象
模型管理器提供了多种方法来侦测和拾取不同类型的控件,并将其添加到应用模型中,帮助您管理自动化测试中的控件对象。这些方法适用于以下几类控件:
- Windows 对象:用于Windows系统上的控件侦测
- Linux ATK 对象:用于Linux桌面环境的控件
- 跨平台 Qt 对象:支持Qt框架的控件
- Java 对象:用于Java应用程序的控件
- 图案对象:用于识别图像或图案的对象
- 虚拟控件对象:在无法通过对象属性识别控件的情况下进行操作的对象
这些控件侦测功能通过工具栏上的按钮进行操作:
注意:根据操作平台的不同,按钮也有所差异。例如,Linux 和 Mac 平台上不显示 Windows 对象侦测按钮。
开始控件侦测
1. 添加单个控件对象
CukeTest 支持对 Windows 控件、Java 控件、Qt 控件和 Linux 控件的侦测。这一功能用于侦测单个控件对象并将其添加到对象模型中。
点击“添加XX对象”按钮后,模型管理器界面会最小化,您可以在应用界面中通过鼠标左键点击要添加的控件。此时模型管理器会侦测该控件,并显示如下对话框:
- 树形结构:上半部分显示控件的层次结构。您点击的控件会作为叶子节点显示,其所有父控件会作为树的父节点显示。
- 对象属性:下半部分展示选中对象的各种属性,包括标识属性和其他辅助属性。
- 智能选择:模型管理器会自动选中帮助识别控件的节点,如忽略那些只作为容器的 panel 或 custom 控件,以减少不必要的对象干扰。
标识属性是唯一标识控件的关键。例如,对于 Windows 控件,Type 属性用于表明控件的类型。如果存在 AutomationId 属性,它通常是控件的唯一标识,可作为首选。如果没有该属性,也可以使用 ClassName 和 Name 组合来唯一识别控件。
提示:虽然系统默认推荐的对象和识别属性适用于大多数场景,您仍可根据需要手动调整勾选项,以确保识别的精准性和效率。您还可以通过自定义侦测规则来选择最合适的控件属性。
验证控件唯一性
在侦测 Qt 和 Windows 控件时,CukeTest 提供了高级验证功能,可帮助确认控件的唯一性。某些情况下,控件的属性可能无法唯一识别对象,这可能是由于界面的动态变化或其他控件共享相同属性所致。为了解决此问题,您可以点击侦测窗口顶部的“验证唯一性”按钮,系统会使用推荐的属性来验证控件是否唯一识别。
验证结果会显示在窗口左下角:
- 能够唯一识别对象:控件属性足以唯一定位目标控件。
- 不能唯一识别对象“controlName”:控件属性不能唯一识别,需要进一步调整。
如果控件不能被唯一识别,您可以通过自动添加索引功能,快速为对象添加唯一标识。
自动添加索引
在某些情况下,即便设置了多个标识属性,仍无法唯一定位目标控件。此时可以通过添加索引属性(index)来解决。当多个控件匹配相同属性时,索引值用于指定目标控件在匹配控件列表中的顺序(默认值为0,即第一个匹配控件)。
点击“通过添加索引使其唯一识别”按钮后,系统会自动为第一个不唯一的控件添加索引值。对于层级较深的控件,您可以多次点击,直到整个对象链条能够唯一识别需要的控件。系统会提示“没有更多需要添加的索引”时,表示对象已被唯一识别。
注意:index 并不是控件固有属性,它表示控件在父结构中的排列顺序。因此,如果界面布局发生变化,index 值可能不再有效。如果控件布局可能会发生动态变化,建议避免使用 index 属性。
除了在侦测窗口中添加索引,您也可以在控件的对象属性中手动添加 index。
2. 批量添加控件对象
模型管理器还支持通过树形结构展示桌面应用中的所有控件信息,方便用户了解控件层次和属性,并支持一次性添加多个控件。这项功能支持 Windows、Java、Qt 和 ATK 控件。
用户可以勾选多个控件,批量添加到模型中,提高控件对象的管理效率。
实用技巧
如果要添加的控件不是直接可见,而需要通过几次点击才能出现,您可以参考侦测非直接选中控件的相关说明,帮助您顺利完成对象的侦测和添加。