AndroidUIAutomator:Android的源生測試框架的定位方式,定位速度快html
1、組合定位android
1.通常組合用id,class,text這三個屬性會比較好一點,但也能夠組合定位框架
2.id與text屬性組合測試
id_text = 'resourceId("com.yuedan:id/et_name").text("請輸入手機號")' driver.find_element_by_android_uiautomator(id_text).click()
二、class與text屬性組合ui
class_text = 'className("android.widget.EditText").text("請輸入手機號")' driver.find_element_by_android_uiautomator(class_text ).click()
三、其它更多組合,id,class也能夠與其它的index,checkable,clickable,password等這些不經常使用的屬性組合,試了下不穩定,因此不推薦spa
四、父子定位childSelector 定位上圖的搜索按鈕code
son = 'resourceId("com.yuedan:id/nearby_actions").childSelector(className("android.widget.ImageView"))' driver.find_element_by_android_uiautomator(son).click()
五、兄弟定位fromParenthtm
brother = 'resourceId("com.yuedan:id/search_view").fromParent(className("android.widget.ImageView"))' driver.find_element_by_android_uiautomator(brother).click()
# text # 匹配所有text文字 driver.find_element_by_android_uiautomator('new UiSelector().text("手機號")') # 包含text文字 driver.find_element_by_android_uiautomator('new UiSelector().textContains("機")') # 以text什麼開始 driver.find_element_by_android_uiautomator('new UiSelector().textStartsWith("手")') # 正則匹配text driver.find_element_by_android_uiautomator('new UiSelector().textMatches("^手.*")') # className driver.find_elements_by_android_uiautomator('new UiSelector().className("android.widget.TextView")') # classNameMatches driver.find_elements_by_android_uiautomator('new UiSelector().classNameMatches("^android.widget.*")') # resource-id、resourceIdMatches 相似咱們html id 這個可能重複, driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.syqy.wecash:id/et_content")') # description driver.find_element_by_android_uiautomator('new UiSelector().description("S 日曆")') # descriptionStartsWith driver.find_element_by_android_uiautomator('new UiSelector().descriptionStartsWith("日曆")') # descriptionMatches driver.find_element_by_android_uiautomator('new UiSelector().descriptionMatches(".*歷$")')