6.APPIUM基础-元素定位by_android_uiautomator

通过by_android_uiautomator方法定位元素。

基本语法:driver.find_element_by_android_uiautomator("xx")

1.通过className来定位语法:

new UiSelector().className("class名称")

页面上的class属性一般不唯一,多半用在复数定位时候。此时定位相应下标

driver.find_elements_by_android_uiautomator("new UiSelector().className(‘android.widget.ImageView’)")[2].click()

2.通过text文本定位语法 :

new UiSelector().text("text文本")

driver.find_element_by_android_uiautomator("new UiSelector().text(‘用户名’)").click()

2.1.如果文本比较长,可以用textContains模糊匹配

new UiSelector().textContains("包含text文本")

driver.find_element_by_android_uiautomator("new UiSelector().textContains(‘用’)").click()

同样可以用textStartsWith是以某个文本开头来匹配

new UiSelector().textStartsWith("以text文本开头")

3.通过resourceId的方法

new UiSelector().resourceId("id")

4.description 也是用contenet-des属性定位

new UiSelector().description("contenet-des属性")

5.组合定位

1).id与text属性组合

#id+text 

id_text = 'resourceId("com.baidu.yuedu:id/webbooktitle").text("小说")' driver.find_element_by_android_uiautomator(id_text).click()

2).class与text属性组合

#class+text

class_text = 'className("android.widget.TextView").text("图书")' driver.find_element_by_android_uiautomator(class_text).click()

6.关系定位

1).父子定位childSelector

有时候不能直接定位某个元素,但是它的父元素很好定位,这时候就先定位父元素,通过父元素找儿子

#父子关系

childSelector son = 'resourceId("com.baidu.yuedu:id/rl_tabs").childSelector(text("小说"))' driver.find_element_by_android_uiautomator(son).click()

2).兄弟定位fromParent

有时候父元素不好定位,但是跟他相邻的兄弟元素很好定位,这时候就可以通过兄弟元素,找到同一父级元素下的子元素

#兄弟关系

fromParent brother = 'resourceId("com.baidu.yuedu:id/lefttitle").fromParent(text("图书"))' driver.find_element_by_android_uiautomator(brother).click()

你可能感兴趣的:(6.APPIUM基础-元素定位by_android_uiautomator)