【appium】根据UIAutomator定位元素

text属性的方法
driver.find_element_by_android_uiautomator(‘new UiSelector().text("Custom View")‘).click() #text
driver.find_element_by_android_uiautomator(‘new UiSelector().textContains("View")‘).click() #textContains
driver.find_element_by_android_uiautomator(‘new UiSelector().textStartsWith("Custom")‘).click() #textStartsWith
driver.find_element_by_android_uiautomator(‘new UiSelector().textMatches("^Custom.*")‘).click() #textMatches
class属性的方法
driver.find_element_by_android_uiautomator(‘new UiSelector().className("android.widget.TextView").text("Custom View")‘).click() #className
driver.find_element_by_android_uiautomator(‘new UiSelector().classNameMatches(".*TextView$").text("Custom View")‘).click() #classNameMatches
伪xpath方法定位
driver.find_element_by_android_uiautomator(‘new UiSelector().text("Custom View").fromParent(new UiSelector().text("Accessibility Service"))‘).click() #通过同级元素定位同级元素
driver.find_element_by_android_uiautomator(‘new UiSelector().className("android.widget.ListView").childSelector(new UiSelector().text("Custom View"))‘).click() #通过父级元素定位子集元素
resourceId属性的方法
driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("android:id/text1")‘) #resourceId
driver.find_element_by_android_uiautomator(‘new UiSelector().resourceIdMatches(".*id/text1$")‘) #resourceIdMatches
description属性的方法
driver.find_element_by_android_uiautomator(‘new UiSelector().description("Custom View")‘).click() #description
driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionStartsWith("Custom")‘).click() #descriptionStartsWith
driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionMatches("^Custom.*")‘).click() #descriptionMatches
元素的其他属性
除了以上比较常用的方法外,UIAutomator还支持其他一些方法,比如根据控件属性是否可点击可聚焦可长按等来缩小要定位的控件的范围,具体使用方法不一一列举(checked,clickable,focesed.......)
driver.find_element_by_android_uiautomator(‘new UiSelector().clickable(true).text("Custom View")‘).click()
文章来自:http://www.cnblogs.com/paulwinflo/p/4742529.html