携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天,点击查看活动详情
定位器
做自动化开发的同学大家都知道,选择器(selector),也叫定位器(locator)的稳定性是非常重要的,在软件测试里,用selenium,playwright或者pupperteer的,一般都用css-selector或者xpath来定位,如何生成css-selector或者xpath有一定的学习门槛。 今天介绍的是开发工具clicknium的定位器,可以用录制器自动生成的,支持桌面和web,以及更多详细信息和高级用法。
定位器设置
定位器具有丰富的功能,可以满足不同的 UI 自动化需求。
- Locator,UI 元素定位器,用于查找元素的字符串(XML 片段),包括应用程序信息和 UI 元素的所有必要父节点,以及每个元素的属性。
- Locator Store,用于存储定位器数据的文件。默认情况下,同一应用程序的定位器存储在一个定位器存储中。用户可以在 Visual Studio Code 或 Clicnium Recorder 中管理定位器存储。
- Screenshot,在记录元素时,将截图与定位器一起存储
- Attribute,用户可以选择/取消选择或编辑每个属性的值。
您可以打开和编辑定位器。
UI 元素定位器是一个字符串,以下格式的 XML 片段,包含用于定位元素的所有信息。
<应用程序.../><Uia .../>/<Uia .../>
<应用程序 .../><Tab .../>/<Web .../>
第一个节点 Application
包含目标应用程序的属性
Name | 说明 |
---|---|
processName | 目标进程的名称 |
filePath | 进程文件名,定位元素时可以忽略 |
version | clicknium 定位器架构版本 |
最后一个节点包含目标 UI 元素的属性。
Application
和最后一个节点之间的节点是目标元素的父级或祖先。
定位器中的属性用于标识目标元素。属性值的运算符默认为 equals
,我们支持以下运算符:
equals
、contains
、startWith
、endWith
。
仅支持通配符搜索的属性,例如 name='test?_node*
。 “?”匹配 1 个字符,'*' 匹配 0 个或多个字符可以使用 contains
、startWith
、endWith
。
由于 Clicknium 支持不同的自动化技术,在定位器架构中显示为不同的标签和属性集合,后续将介绍不同的录制结束对应的属性列表。。
例子
通配符定位器
打开 Edge 浏览器,按“F12”显示开发者工具边栏,可以看到“切换设备仿真”按钮。
如果您捕获按钮“切换设备仿真”的定位器,您可以看到以下定位器。
- 正常模式
- 移动仿真模式
classname 的属性是动态的。为了稳定按钮“切换设备仿真”的识别,您可以利用通配符定位器。
在这两种模式下,都可以成功定位到按钮。 并且可以通过get_property知道当前的模式。
from clicknium import clicknium as cc, ui, locator
class_name = ui(locator.msedge.bing.button_toggledeviceemulation).get_property("ClassName")
if class_name.endswith('state-off'):
print('normal mode')
else:
print('mobile emulation mode')
以下情况可以视为通配符定位器:
- 窗口标题是动态的,例如标题包含版本字符串,但应用程序版本可以升级
- 网页的 url 是动态的
- 属性的值是动态的