appium幾種元素定位(id,class,content-desc,AndroidUiAutomator,bound,相對定位-通過父類,xpath)


appium 五種定位方式
1.通過id定位,resrouce-id
2.通過ClassName定位: classname
3.通過Accessiblityld定位:content-desc
4.通過AndroidUiAutomator

5.根據bound定位

6.相對定位

7.通過xpath定位(app中很少用到)終極定位

 

通過id定位,

resrouce-id

driver.find_element_by_id('co****ban:id/navigation_tiku').click()
time.sleep(2)


通過Accessiblityld定位:content-desc


driver.find_elements_by_accessibility_id()#值為content-desc的值

通過ClassName定位: classname

driver.find_element_by_class_name()


通過AndroidUiAutomator

driver.find_element_by_android_uiautomator('new UiSelector().className(\"android.widget.TextView\").textContains(\"信息\").resourceId(\"com.lemon.lemonban:id/category_title\")').click()

根據bound定位

目前使用bounds定位的方式一般是因為這個元素clickable=false時,用bounds進行定位后用tap方法模擬點擊。


相對定位

先找到元素的父元素節點,再通過父元素進行元素定位

root_element=driver.find_element_by_id('id')
root_element.find_element_by_class_name('android.widget.TextView').click()


通過xpath定位(app中很少用到)
driver.find_element_by_xpath('//android.widget.ImageView[@resource-id="com.zhijiepay.xls:id/confirm_ok"]').click()
#注意調試時不關閉driver,則認為進程還在開啟中,uiautomatorviewer截圖會出現失敗。

本身SDK自帶的uiautomatorviewer可能沒有獲取xpath的功能。

下載可以獲取xpath的uiautomatorviewer 的 github 地址:https://github.com/lazytestteam/lazyuiautomatorviewer

將新的jar包放到原來的uiautomatorviewer的jar包目錄,名字一定要和原生的jar包名字相同,不然會打不開。

 

 

運行uniautomatorviewwe.bat結果如下:

driver.find_element_by_xpath("//android.widget.ImageView[@resource-id='com.zhijiepay.xls:id/confirm_ok']").click()

 

由上面可以看出,xpath是由resource-id 和 class 拼接起來的:

xpath = //"classname"[@resource-id="resourceid "]

@后面可以是resource-id,也可以是其他的屬性


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM