App自动化测试(四)之元素定位
App自动化测试之元素定位

通过uiautomatorviewer辅助元素定位工具,我们可以看到微信注册的注册按钮元素对应的信息:
text:元素的文本信息
resource-id:元素的ID
class:元素的className
package:元素所在的包名
content-desc:
bounds:元素的坐标
1、通过id进行定位(app中的id不一定是唯一的)
driver.find_element_by_id("com.tencent.mm:id/e4c")
2、通过className进行定位
driver.find_element_by_class_name("android.widget.Button")
3、通过xpath进行定位(在App当中text是用@text表示,不是text())
driver.find_element_by_xpath('//android.widget.Button[@resource-id=\"com.tencent.mm:id/e4c\"]')
4、通过content-desc进行定位(有些元素中可能content-desc为空)
driver.find_element_by_accessibility_id('')
5、通过uiautomator进行定位(这是安卓的原生定位方式,快)
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.tencent.mm:id/e4c")')
附:UiSelector API 详细介绍
1、资源ID定位对象
| 返回值 | API | 说明 | 
|---|---|---|
| UiSelector | resourceId(String id) | 资源ID | 
| UiSelector | resourceIdMatches(String regex) | 资源ID正则 | 
2、文本属性定位对象
| 返回值 | API | 说明 | 
|---|---|---|
| UiSelector | text(String text) | 文本 | 
| UiSelector | textContains(String text) | 文本包含 | 
| UiSelector | textMatches(String regex) | 文本正则 | 
| UiSelector | textStartsWith(String text) | 文本起始匹配 | 
3、描述属性定位对象
| 返回值 | API | 说明 | 
|---|---|---|
| UiSelector | description(String desc) | 描述 | 
| UiSelector | descriptionContains(String desc) | 描述包含 | 
| UiSelector | descriptionMatches(String regex) | 描述正则 | 
| UiSelector | descriptionStartsWith(String desc) | 描述开始字符匹配 | 
4、索引与实例属性定位对象
索引与实例说明
1)索引index:指在同级中的编号,在兄弟类中的主键的编号
2)实例instance:整个布局文件中的编号,同一个类(比如6.2中的view类)的同级编号
| 返回值 | API | 说明 | 
|---|---|---|
| UiSelector | index(int index) | 索引 | 
| UiSelector | instance(int instance) | 实例 | 
5、特殊属性定位对象
| 返回值 | API | 说明 | 
|---|---|---|
| UiSelector | checked(booleean val) | 选择属性 | 
| UiSelector | clickable(boolean val) | 可点击属性 | 
| UiSelector | enabled(boolean val) | enabled属性 | 
| UiSelector | focusable(boolean val) | 焦点属性 | 
| UiSelector | focused(boolean val) | 当前焦点属性 | 
| UiSelector | longClickable(boolean val) | 长按属性 | 
| UiSelector | scrollable(boolean val) | 滚动属性 | 
| UiSelector | selected(boolean val) | 背景选择属性 | 
6、节点属性定位对象
| 返回值 | API | 说明 | 
|---|---|---|
| UiSelector | childSelector(UiSelector selector) | 从当前类中往下递归找符合条件的子类组件 | 
| UiSelector | formPrent(UiSelector selector) | 从父类往下递归找符合条件的组件 | 

                
            
        
浙公网安备 33010602011771号