笔记
升级到了1.8.0之后 一直在维护web(selenium) 搁浅了一段时间,差不多稳定了 现在开始写appium 现在因该好写 坑都被大佬们填完了,进入主题
appium 1.8 支持的格式如下图 就那么几个 导致不太兼容 经典版本appium的定位方式
所以现在用最快捷、最高效的定位方式来解决
首先要了解下 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