Appium Python + appium driver.find_element_by_android_uiautomator () 这个方法怎么用啊

zhang · 2017年09月12日 · 最后由 zhang 回复于 2017年09月12日 · 3120 次阅读

最近使用 appium 做 APP 的自动化,发现 appium 的元素定位的好多方法没有了,id,name,classname,xpath 都没有看到了

然后使用 driver.find_element_by_android_uiautomator() 这个方法定位,但是官网给的例子 driver.find_element_by_android_uiautomator('.elements()[1].cells()[2]') 看不懂,还是不知道这个需要怎么写,求指导的大神指导下。跪谢!

共收到 6 条回复 时间 点赞

你们的库是这样的吗

这个会和版本有关系么?

笑哼 回复

我用的最新的库,然后就是这样。appium 的版本是 1.4.6,appium-Python-client 是最新的

1.您可能需要了解,uiautomator查找元素的方式。
####### resourceId 方式

driver.find_element_by_android_uiautomator('new UiSelector().resourceId("%s")')

####### text 方式

driver.find_element_by_android_uiautomator('new UiSelector().text("%s")')

####### description 方式

driver.find_element_by_android_uiautomator('new UiSelector().description("%s")')

####### className 方式

driver.find_element_by_android_uiautomator('new UiSelector().className("%s")')

####### index 方式

driver.find_element_by_android_uiautomator('new UiSelector().index("%s")')

####### className + index 方式

driver.find_element_by_android_uiautomator(
                'new UiSelector().className("%s").childSelector(new UiSelector().index("%d"))')

####### 伪 xpath 方法定位

driver.find_element_by_android_uiautomator(new UiSelector().text("Custom View").fromParent(new UiSelector().text("Accessibility Service"))).click()            #通过同级元素定位同级元素
driver.find_element_by_android_uiautomator(new UiSelector().className("android.widget.ListView").childSelector(new UiSelector().text("Custom View"))).click()  #通过父级元素定位子集元素

有不懂可以联系我

以上都是常用的uiautomator查找方式,还有很多id/name/classname/xpath 轮子都是selenium

Wensau 回复

谢谢啊 完美的解决了我的问题 ,向大神膜拜

还有很多 id/name/classname/xpath 轮子都是 selenium,这些的方法还可以用吗

恒温 关闭了讨论 09月12日 19:04
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册