在 Android 的自动化测试中,有很多定位方式,如:id
、className
、AccessibilityId
、xpath
、AndroidUIAutomator
等定位方式。AndroidUIAutomator
是 Android 原生支持的,定位方式最强大,速度也是最快的,虽然与 xpath
类似,但比它更加好用,且支持元素全部属性定位,元素属性请参见以下截图。
定位方式
- 定位的说明
AndroidUIAutomator
是由UiSelector
对象构建的。支持的方法有:
index(index)
----用当前对象在父对象集中的索引作为描述
text(text)
----最为常用的一种关系,用控件上的文本即可找到当前控件
resourceId(id)
----用当前元素 id 定位
className(className)
----描述一种类名为className的对象关系
packageName(String name)
----用包名作为条件描述
description(desc)
----不解释
checked(boolean val)
----描述一种check状态为val的关系。
clickable(boolean val)
----与checked类似,描述clickable状态为val的关系
enabled(boolean val)
----与checked类似,描述enabled状态为val的关系
longClickable(boolean val)
----与checked类似,描述longClickable状态为val的关系
selected(boolean val)
----描述一种选择关系
# 其他一些详细方法,请查看 Android 源码中,UiSelector 类定义的方法
例子:
new UiSelector().text(text) # 使用元素 text 属性定位
new UiSelector().resourceId(id) # 使用 id 属性
new UiSelector().className(className) # 使用元素类型定位
# 还可以元素多个属性自由组合
new UiSelector().className(className).text(text)
new UiSelector().resourceId(id).clickable(val)
new UiSelector().resourceId(id).clickable(val)
new UiSelector().className(className).text(text). longClickable(val)