Appium中app的元素定位


app定位方式,本文只講Android手機的定位方式。

前提條件是adb連接到模擬器或者是手機(具體連接方式這里不再講解),證明已連接到設備

adb devices

app元素定位工具一:UI Automator Viewer

這個工具是Android SDK自帶的一個定位工具,具體頁面截圖如下:

 

app元素定位工具二:Appium工具

啟動Appium,啟動之后,頁面有一個放大鏡的按鈕,如圖所示:

 

 點擊放大鏡按鈕,進入配置項,如果所示:

platformName  --  系統名稱

platformVersion  -- 系統的版本

deviceName  --  機型(隨意添)

appPackage  --  app包名(這里以淘寶為例)

appActivity --  歡迎頁面

noReset --  啟動app時不要清除app里的原有的數據(True)

 

獲取appPackage和appActivity的方法,com命令進入Android-sdk/build-tools-29.0.2目錄下,執行命令

aapt dump badging xxx.apk(安裝包名稱)

app包名

 

appActivity名稱:

 

 

 

 

 設置好啟動項參數后,啟動會話。

 

 

接下來說元素定位表達式,appium中的定位表達式,繼承了selenium中的八大定位表達式(selenium的八大定位前邊已經說過,就不再贅述),同時也有自己的定位表達式,分別是:

 

AndroidUiAutomator定位

使用UiAutomator中的UiSelector類來處理元素定位,該方法的參數為UiSelector類定位元素的表達式

new UiSeletor().函數名稱("定位表達式")

實例化一個UiSelector對象,然后通過實例調用接口。

這里常用的是ANDROID_UIANTOMATOR和ACCESSIBILITY_ID元素定位

 

舉個栗子:

通過resrouce-id來定位

find_element_by_android_uiautomator('new UiSelector().resourceId("com.taobao.taobao:id/textview_goods_title")')

 通過text來定位

find_element_by_android_uiautomator('new UiSelector().text("文本內容")')

 通過content-desc定位

find_element_by_android_uiautomator('new UiSelector().description("勾選寶貝")')

 

id、class、content-desc定位

通過id來定位(resrouce-id)

find_element_by_id("com.taobao.taobao:id/textview_goods_title")

通過ClassName定位(class)

.find_element_by_class_name("android.widget.CheckBox")

通過AccessibilityId定位(content-desc)

find_element_by_accessibility_id("勾選寶貝")

app定位中不建議使用xpath定位,多以此處也不再多贅述了。


免責聲明!

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



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