最近使用 appium 做 APP 的自动化,发现 appium 的元素定位的好多方法没有了,id,name,classname,xpath 都没有看到了 然后使用 driver.find_element_by_android_uiautomator() 这个方法定位,但是官网给的例子 driver.find_element_by_android_uiautomator('.elements()[1].cells()[2]') 看不懂,还是不知道这个需要怎么写,求指导的大神指导下。跪谢!
你们的库是这样的吗
这个会和版本有关系么?
我用的最新的库,然后就是这样。appium 的版本是 1.4.6,appium-Python-client 是最新的
1.您可能需要了解,uiautomator查找元素的方式。 ####### resourceId 方式
1.您可能需要了解,uiautomator查找元素的方式。
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
谢谢啊 完美的解决了我的问题 ,向大神膜拜
还有很多 id/name/classname/xpath 轮子都是 selenium,这些的方法还可以用吗