python appium android_uiautomator 遇到的坑及其笔记

笔记

升级到了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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值