text属性的方法
driver.find_element_by_android_uiautomator('new UiSelector().text("字节跳动公司")').click() #text 精准定位全文 driver.find_element_by_android_uiautomator('new UiSelector().textContains("字节")').click() #textContains 包含text文字 driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("字")').click() #textStartsWith 以text什么开始 driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^字节.*")').click() #textMatches 正则匹配text
class属性的方法
#className driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.TextView").text("Custom View")').click() #classNameMatches driver.find_element_by_android_uiautomator('new UiSelector().classNameMatches(".*TextView$").text("CustomView")').click()
伪xpath方法定位
1 #通过同级元素定位同级元素 2 driver.find_element_by_android_uiautomator('new UiSelector().text("Custom View").fromParent(new UiSelector().text("Accessibility Service"))').click() 3 4 #通过父级元素定位子集元素 5 driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.ListView").childSelector(newUiSelector().text("Custom View"))').click() 6
resourceId属性的方法
1 driver.find_element_by_id('android:id/button2').click()
uiautomator() 方法
1 #resourceId 2 driver.find_element_by_android_uiautomator('new UiSelector().resourceId("android:id/text1")') 3 4 5 #resourceIdMatches 6 driver.find_element_by_android_uiautomator('new UiSelector().resourceIdMatches(".*id/text1$")')
description属性的方法
1 #description 2 driver.find_element_by_android_uiautomator('new UiSelector().description("Custom View")').click() 3 4 #descriptionStartsWith 5 driver.find_element_by_android_uiautomator('new UiSelector().descriptionStartsWith("Custom")').click() 6 7 #descriptionMatches 8 driver.find_element_by_android_uiautomator('new UiSelector().descriptionMatches("^Custom.*")').click()
元素的其他属性
除了以上比较常用的方法外,UIAutomator还支持其他一些方法,比如根据控件属性是否可点击可聚焦可长按等来缩小要定位的控件的范围,具体使用方法不一一列举(checked,clickable,focesed.......)
1 driver.find_element_by_android_uiautomator('new UiSelector().clickable(true).text("Custom View")').click()