Appium如何定位APP中控件元素方法


方法一:

安卓SDK中有UI Automator Viewer可用於定位APP控件中的元素,UI Automator Viewer的位置就在sdk的tools下,可以通過uiautomatorviewer.bat啟動;

雙擊uiautomatorviewer.bat后,啟動后頁面如下:

 頁面右上角有4個按鈕,分別為:打開本地文件、dump頁面、dump壓縮格式的頁面、保存,點擊下圖中紅圈圈出的dump頁面按鈕,頁面將彈出“Select device”的對話框,點擊下拉框列出的即為電腦已連接的安卓手機列表(包括模擬器emulater),確定需要定位的手機后,點擊“OK”按鈕,在一系列加載進度完成后,此時UI Automator Viewe頁面會同步顯示已選擇手機的當前UI頁面,可對當前頁面元素進行定位;

此后,在左側同步的手機頁面點擊所要定位的按鈕等控件,此時右上方會高亮顯示該控件的相關信息,比如點擊Calculator中的“9”后,右上方顯示它是一個Button,右下方顯示了該控件相關的詳細信息;

備注:在上述操作過程中,出現了幾個問題:

問題1:

UI Automator Viewer無法識別打開電腦已連接的設備,此時先在命令行中運行adb devices查詢電腦中已連接的設備信息,卻發現我的電腦中adb是無效的命令,此時查詢資料后並比對問題,發現所需配置的環境變量中,我還缺了一項尚未配置,所以我執行了以下操作:在系統變量中新建變量名:android,變量值:E:\03.測試相關文檔\測試工具\04.Appnium\android-sdk-windows\platform-tools;(即已解壓android-sdk-windows文件夾下platform-tools路徑),然后在PATH中加入%android%;(注意用分號隔開,分號都是英文的),配置完成后,再運行adb devices,可運行,但出現了問題2;

問題2:

問題1解決后,在命令行中運行adb devices,發現該命令不再提示為無效命令,但出現了新的問題提示,如下:

error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:
通常每個套接字地址(協議/網絡地址/端口)只允許使用一次。 (10048)

查詢資料后,發現問題是因為端口5037被其他應用占用,很有可能是被某某手機助手占用,解決方法:

(1)打開任務管理器-》查看—》選擇列—》勾選pid,找到占用5037的進程,然后選中結束進程,然后重新打開cmd運行adb devices;

(2)關掉360手機助手,豌豆莢手機助手等,然后重新打開cmd運行adb devices;

我此處的解決方法是關掉電腦中的“91助手”,再重新啟動cmd運行adb devices,終於正確顯示了電腦中已連接安卓設備信息,如下圖:

 


免責聲明!

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



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