侦测控件及对象添加

模型管理器提供了多种方式,侦测并拾取不同类型的控件,并添加到应用模型中:

  1. Windows对象,通常用于完成在Windows系统上的
  2. Linux对象
  3. 跨平台Qt对象
  4. Java对象
  5. 图案对象
  6. 虚拟控件对象

这些方式分别针对工具条上的对应按钮:

注意:侦测按钮会随着平台的不同而不同。例如在Linux和Mac上就没有Windows对象。

开始侦测

1. 控件对象侦测

对象侦测包含Windows对象、Java对象、Linux对象。 这个功能用于识别单个控件对象,并加入到对象模型中。

当点击其中的一个“添加XX对象”,模型管理器会隐藏,这样用户可以在屏幕上用鼠标左键点击要添加的的控件。模型管理器会侦测到控件,并显示下面对话框:

其中:

  • 对话框的上半部是树形结构,用户在被测应用界面上点击控件的对应对象会作为叶子节点显示在树上。它的所有父级控件也会作为树的父节点显示。
  • 对话框的下半部显示某个选中对象的属性。其中包含标识属性和其他属性。
  • 选择那些在识别中对控件层次化识别有帮助的节点。其中,模型管理器已经自动帮用户智能选择了一些父级对象。比如,那些只是作为容器,但不包含内容的panel控件缺省没有被选中。
  • 标识属性是每个对象用于唯一标识这个控件的属性。例如,对于Windows对象,其中Type属性为必选,它表明控件的类型。如果有AutomationId属性,通常被开发人员设成唯一标识控件的常量值。有这个属性的话就可以只选AutomationId。否则,如果ClassName + Name属性可以唯一标识控件,也可以选这两个。

注意:智能推荐所勾选的这些对象和识别属性在大多数情况下是充分和合理的,但也未必适合所有情况。您也可以根据需要清除或勾选一些属性或对象,使识别更精准或效率更高。

控件唯一性验证

Windows对象的控件侦测提供了高级的辅助功能,包括验证控件的唯一性和自动化添加index属性等。因此下面的描述只针对Windows自动化。

在识别到控件后,会自动验证控件的唯一性。同时如果用户应用程序界面有变化,也可以手动点击“控件唯一性验证”按钮 验证唯一性。

如果验证不唯一,在用户添加对象到模型中时,会提示是否要添加索引使其唯一识别。如果需要唯一识别,用户可以点击“自动添加索引”按钮为不能唯一识别的对象添加索引值。

唯一性验证配合“自动添加索引”功能可以快速向模型添加唯一识别对象。

自动唯一性验证

在侦测到控件后,会自动验证控件的唯一性。如果用户重新勾选需要的对象和识别属性时,其唯一性都也有可能变化,因此也会自动重新验证唯一性。 在添加控件阶段会自动的进行唯一性验证并将不能唯一识别控件的对象标红。它提高在添加控件阶段更精准的添加需要的控件,唯一性验证会在以下几种情况中自动的触发:

  • 侦测控件完成时;
  • 树结构修改对象勾选时;
  • 增删识别属性时;

当目标控件唯一性验证完成后,可以在侦测面板下方的提示是否能唯一识别的信息。同时也能看到耗时,它显示的是从顶层对象逐层侦测到最下层对象所花费的时间。一般来说,层级越多,匹配的越精确、耗时也越久、但也可能有例外情况。这个时间也是实际脚本执行时需要的侦测时间。因此在保证精确性的前提下,根据耗时的显示,适当的调整父节点数量、调整识别属性,使耗时最少,这样能够提高控件在实际操作时的性能。

唯一性验证过程中会在状态条上显示“取消”链接。如果不需要继续验证,可以点击它取消唯一性验证。

添加索引值(index)

“添加索引值”按钮

一般情况下,可以通过设置标识属性的组合来唯一定位到目标控件。有些时候,在添加了所有有效属性后,仍旧无法唯一定位到目标控件。在无法通过唯一性验证时,可以通过添加索引值(index)属性来解决。当对象匹配到多个控件时,返回匹配控件列表中的第index个控件。默认为0,即第一个匹配控件。

使用“添加索引值”按钮将自动的为节点添加index值,从而使其唯一。

某个对象添加index后会重新验证唯一性,因为可能仍然有其它重复节点,可以重复点击“添加索引值”步骤直至整个对象链条能够唯一定位需要的控件。

需要注意的是,“index”属性并非控件固有属性,而是控件在父结构中或控件搜索结果中的排列顺序,因此可能随着控件布局的变化而变化。如果你发现你的被自动化应用的控件布局可能有动态变化,请选择避免用index属性。

此外除了在侦测窗口中添加索引外,你也总是可以之后在模型树中为某个对象添加index。

2. 批量添加对象

目前Windows对象支持批量添加。

当需要侦测的控件很多时,逐个侦测并添加控件会很繁琐。点击菜单中的 ”批量添加控件“,可以成批添加控件。方法是在模型管理器的工具栏添加对象旁的下拉按钮可以看到批量添加对象菜单项,悬停在该按钮上并松开鼠标,模型管理器窗口会隐藏,您可以在应用上选择想要添加的某个控件,选中之后就会弹出“批量添加控件”窗口,界面如下图:

例如针对“计算器”应用,选取一个按钮控件,模型管理器会识别所有与这个按钮在同一层次相邻的控件,并显示在列表中。上图中间部分的列表控件显示了与你点击按钮同一层次的所有控件。可以勾选其中控件的复选框。对于每个控件,还可以勾选修改推荐的识别属性。最后点击添加按钮,将它们批量添加到模型中。 如果发现侦测的控件不是你真正想添加的,可以通过顶部的面包屑导航条定位到其它的层次控件。导航条列出的是当前列表控件的所有父控件,是从最顶层的窗体控件一级一级往下,直到当前你点击控件的层次。 如果列表中的控件是一个容器,包含了其它子控件,那么点击它的蓝色链接部分会进一步打开这个容器,然后在列表中显示下一级的直接子控件。但是如果它没有子控件,点击它的链接部分则没有反应。 当你在中间的控件列表中点击不同行的时候,右下角的图片框会显示这个控件的截图,这样用户可以清楚的看出需要添加的是哪个控件。

3. 浏览/添加

目前支持Windows和Qt对象侦测。

以树状图的形式展示桌面中所有应用中的控件信息,不仅可以方便的了解控件的结构和属性,还可以轻松的在不同层级中切换。

除此之外通过勾选控件可以实现一次性添加多个控件的效果,非常方便。 浏览控件树

侦测器(Spyer)

当你需要在被测应用上查看多个控件并添加时,可以使用侦测器查看,并添加。侦测器可始终显示在桌面上,当鼠标在桌面上移动时,会高亮鼠标所在点位置的控件。如果是需要添加的,可点击鼠标左键停止侦测。这时再点击侦测器上的添加按钮,将侦测到的控件添加到模型中。

其它技巧

当你要添加的控件不是直接在界面上可见,需要通过几次点击后才能显示时,可以参考侦测非直接选中控件

results matching ""

    No results matching ""