ATK的识别属性

在 Linux 应用中,CukeTest 通过一系列识别属性来定位和操作界面元素。这些属性帮助自动化工具准确识别控件,从而实现自动化测试任务。

如需更多了解模型对象及其属性,请查阅模型对象及属性文档。

常用识别属性

以下是 Linux 应用中常用的识别属性。这些属性在其他自动化技术(如 Windows 自动化)中也存在,但在 Linux 应用中可能有不同的含义。

type

  • 描述控件的类型,是一个必需的属性,不能更改或删除。
  • 控件类型决定了控件提供的操作 API。
  • 常见类型包括 Button、Label、Window、List、Table、Tree 等。

name

  • 对应 ATK 控件的可访问名称。
  • 是控件的内部对象名称。

text

  • 控件显示的文本内容。
  • 如果控件在开发时设置了 textlabeltitle 等属性,这些属性通常与用户看到的内容一致,因此会首先选择这些值进行识别。
  • 如果控件没有设置这些属性,则认为该属性不存在。

className

  • 控件所属的类名称,源自控件在代码中的类定义。
  • className 反映了控件在开发时采用的具体组件,有助于了解应用的结构。
  • 例如,对于一个按钮控件,type 可能是 Button,而 className 可能是 ToggleButton,如下图所示:
    ATK控件的className

辅助识别属性

index

  • 描述目标控件在一次匹配到的多个控件中的位置。
  • 当识别属性不足以唯一标识控件时,index 可以作为辅助解决方案。
  • 具体可参考Windows的识别属性

objectType

  • 描述目标控件的抽象类型。
  • objectType 设计用于更精确地控制和操作控件。
  • 具体可参考Windows的识别属性

特有识别属性

特有识别属性是指那些仅出现在特定类型控件中的属性,这些属性可以帮助我们更准确地定位和操作这些特定的控件。

itemPath

目标控件在整个视图组件中所处的位置,存在于ListItemTableItemTreeItemViewItem中,但对于不同类型的item中路径的定义也有些许区别。在类型文件中的定义如下:

JavaScript
Python
export type ItemPath = number; // 常见于ListItem,用数字表示列表项位置。
export type ItemPath = number[]; // 常见于TreeItem,用数字数组表示树节点的路径
export type ItemPath = string[]; // 常见于TreeItem,用字符串数组表示树节点的名称路径,会自动地在树中寻找符合的树节点
export type ItemPath = [number, number]; // 常见于TableItem中,一个长度为2的数组数组,数组中的两个数字分别代表行和列,通过行列来表示单元格位置。
export type ItemPath = (number | string | [number, number])[]; // 常见于TreeItem,用更复杂数组表示树节点的某列属性,数组的最后一个值为类似行列的数组。如果ItemPath写作 [0, [0, 0]],则代表树的第1个节点的第1个子节点的第1列属性。
ItemPath: int # 常见于ListItem,用数字表示列表项位置。
ItemPath: List[int] # 常见于TreeItem,用数字数组表示树节点的路径
ItemPath: List[str] # 常见于TreeItem,用字符串数组表示树节点的名称路径,会自动地在树中寻找符合的树节点
ItemPath: [int, int] # 常见于TableItem中,一个长度为2的数组数组.
# 数组中的两个数字分别代表行和列,通过行列来表示单元格位置。
ItemPath: List[Union(str, int, ItemPath)] # 常见于TreeItem,用更复杂数组表示树节点的某列属性,数组的最后一个值为类似行列的数组。  
# 如果ItemPath写作 [0, [0, 0]],则代表树的第1个节点的第1个子节点的第1列属性。

可以将ItemPath作为一种通用的描述数据视图中项(Item)的位置的格式,只是在不同类型的视图中有不同形式的简写。由于可以将表格(Table)类比为单层级的树(Tree),也可以将列表(List)类比为单列的表格(Table),因此其实所有ItemPath都可以写成相同的形式(只是更复杂更不易读)。

  • 列表(List):[1] 可以写作[[1,0]]
  • 表格(Table):[1, 1]可以写作[[1, 1]]
  • 树(Tree):[1, 1]可以写作[1, [1, 0]]

可以发现,无论哪一种数据视图的ItemPath都可以写成相同的、完整的二维数组的格式。

results matching ""

    No results matching ""