python appium android_uiautomator 遇到的坑及其笔记

笔记

升级到了1.8.0之后 一直在维护web(selenium) 搁浅了一段时间,差不多稳定了 现在开始写appium 现在因该好写 坑都被大佬们填完了,进入主题

appium 1.8 支持的格式如下图 就那么几个 导致不太兼容 经典版本appium的定位方式

所以现在用最快捷、最高效的定位方式来解决

python appium android_uiautomator 遇到的坑及其笔记_第1张图片

首先要了解下 uiautomator 的查找元素的方式

# resourceId 方式
self.driver.find_element_by_android_uiautomator('new UiSelector().resourceId("%s")')
# text 方式
self.driver.find_element_by_android_uiautomator('new UiSelector().text("%s")')
# description 方式
self.driver.find_element_by_android_uiautomator('new UiSelector().description("%s")')
# className 方式
self.driver.find_element_by_android_uiautomator('new UiSelector().className("%s")')
# index 方式
self.driver.find_element_by_android_uiautomator('new UiSelector().index("%s")')
# className + index 方式
self.driver.find_element_by_android_uiautomator('new UiSelector().className("%s").childSelector(new UiSelector().index("%d"))')
# 伪xpath方法定位
self.driver.find_element_by_android_uiautomator('new UiSelector().text("Custom View").fromParent(new UiSelector().text("Accessibility Service"))').click()
self.driver.find_element_by_android_uiautomator('new UiSelector().className("android.widget.ListView").childSelector(new UiSelector().text("Custom View"))').click()



遇到的坑

1、双引号

get_element(driver, ('ANDROID_UIAUTOMATOR', 'new UiSelector().resourceId("com.zld.zld_face_rec_app:id/et_name")')).send_keys(username)

上面这个是正确的

get_element(driver, ('ANDROID_UIAUTOMATOR', "new UiSelector().resourceId('com.zld.zld_face_rec_app:id/et_name')")).send_keys(username)

这个就是错误的 

真特么的惊喜 双引号的位置不一致就会引起error


你可能感兴趣的:(appium)