appium使用之元素定位
使用appium时,可以使用各种各样的元素定位方式,先来看一下这些元素在哪,如下图
在appium中可以找到的属性都在这里
id定位
driver.find_element_by_id('')
#这里填入的id就是resource-id
#如果resource-id重复,那么使用其他方式定位
className定位
driver.find_element_by_class_name('')
#这里的calssName就是对应appium中的class,
#在appium中,class名就是标签名
通过父元素定位
son='resourceId("android:id/button2").childSelector(className("android.widget.Button"))'
driver.find_element_by_android_uiautomator(son)
通过兄弟元素定位
brother='resourceId("xxx").fromParent(className("xxx"))'
driver.find_element_by_android_uiautomator(brother)
列表定位法
driver.get_elements_by_id('')[2]
#先找到所有相同Id,然后取第3个元素
Xpath定位
driver.find_element_by_xpath('//标签名[@属性名1="xxx" and @属性名2="xxx"]')
driver.find_element_by_xpath('//*[@属性名1="xxx" and @属性名2="xxx"]')
当appium失效时
有时候发现使用appium定位元素时,根本找不到,或者点击appium的刷新根本刷新不了,显示一直在等待,这个时候可以接着安卓SDK下的TOOLS工具里面的uiautomatorviewer.bat
刷新根本刷新不了,显示一直在等待,这个时候可以接着安卓SDK下的TOOLS工具里面的uiautomatorviewer.bat
一般appium定位不到的,uiautomatorviewer.bat可以定位到,这里说的一般情况,有时候uiautomatorviewer也定位不到。。。。。。