在 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狀態(tài)為val的關系禁荸。
clickable(boolean val)
----與checked類似右蒲,描述clickable狀態(tài)為val的關系
enabled(boolean val)
----與checked類似,描述enabled狀態(tài)為val的關系
longClickable(boolean val)
----與checked類似赶熟,描述longClickable狀態(tài)為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)