APP中的元素定位工具大致有三種:
uiautomatorviewer工具Appium Inspector工具Chrome Inspect工具
提示:本篇文章介紹
Appium Inspector工具。
1、Appium Inspector介紹
之前我們說過Appium Server有兩種啟動方式,
- 一種是
Appium Desktop有圖形界面的啟動方式,稱之為桌面版; - 另一種版本是通過
npm安裝,使用命令行參數啟動的Appium Server。
而Appium Inspector工具就在Appium Desktop中,Appium Inspector是Appium Desktop附帶的一個元素定位檢查器,用來調試定位應用程序很方便。
Appium Inspector工具同時支持Android系統和IOS系統中原生界面的元素定位。
2、Appium Inspector打開方式
Appium Desktop安裝完成之后,雙擊打開。

說明:界面有 3 個 Tab 選項
Simple:默認配置,監聽本機 4723 端口;Advanced:高級設置,可以自定義Appium server端的配置,配置好后可以保存到Presets;Presets:修改Advanced高級設置中的配置項。
一般我們測試直接使用Simple即可,點擊 Start Server 按鈕,啟動Appium server,並開啟監聽本機 4723端口。
開啟服務后,界面跳轉到服務端控制台,如下圖所示:

提示:
控制台顯示運行的腳本中的日志信息,右上角有 3 個按鈕,分別是:
- 第一個按鈕
Start Inspector Session,開啟Appium Inspector定位工具;
注意:inspector會新開一個Session;- 第二個按鈕
Get Raws Logs,下載當前控制台中的log信息;- 第三個按鈕
Stop Server,關閉當前的Appium server。
有兩種方式可以開啟Appium Inspector工具,
- 方式一:點擊右上角三個按鈕中的第一個(一個放大鏡樣子的按鈕),打開
Appium Inspector工具。 - 方式二:點擊左上角
File-->New Session Window... Ctrl+N也可以打開Appium Inspector工具。
如下圖:

Appium Inspector工具開啟后的界面如下圖:

3、Appium Inspector布局介紹
Appium Inspector布局如下圖所示:

上圖說明:
- 布局1是
Appium Inspector服務的設置。
Automatic Server:自動服務器。
Custom Server:定制服務器。
Select Cloud Providers:選擇雲提供商。
我們一般使用Automatic Server即可:
Will use currently-running Appium Desktop server http://localhost:4723
將使用當前運行的Appium桌面服務器http://localhost:4723。 - 布局2是高級設置。
可以設置:
Allow Unauthorized Certificates:允許未經授權的證書。
Use Proxy:使用代理服務器。
初學一般我們不進行高級設置。 - 布局3是
Desired Capabilities參數設置。
Desired Capabilities: 編寫Desired Capabilities參數。
Saved Capability Sets:已保存的Desired Capabilities,可以進行查看和修改。
Attach to Session...:附加到會話...(用到的時候在說)
4、Appium Inspector工具的配置
1)Appium Inspector工具使用前提
- 打開
Appium Desktop,開啟Appium Inspector工具。 - 所測試設備是開機狀態(手機或者模擬器)。
- 確保電腦與設備是鏈接狀態,也就是
cmd進入命令行終端,
輸入adb connect 127.0.0.1:21503鏈接逍遙模擬器,
輸入adb devices能夠獲取設備名稱。
2)Appium Inspector的服務器設置和高級設置
- 服務器設置:選擇
Automatic Server(一定要記得點擊一下,進行選中) - 高級設置:不進行設置
3)編寫Desired Capabilities參數(重點)
可以在左側一行一行手動添加,如下圖所示:

提示:第二列的格式是針對第三列
value值而言的。
也可以把Json格式的數據編輯好,直接粘貼在右側JSON Representation里。

直接把Json格式的數據直接粘貼過來。

點擊保存之后,數據會同步到左側,如下圖所示:

4)保存Desired Capabilities參數
如有需要,在編輯完成Desired Capabilities參數之后,可以對其進行保存,方便以后的管理和使用。


5)查看和修改已存儲的Desired Capabilities
點擊Saved Capability Sets標簽頁,可以查看和修改已存儲的Desired Capabilities。

6)開啟Session,連接手機獲取手機界面
點擊Start Session,開啟使用Appium Inspector工具。
如下圖所示:

說明:
Appium Inspector需要我們手動創建一個session,其實也就是一個客戶端,和Appium server連接,並且需要在Desired Capabilities里面填入一些參數。- 所需功能是在
Desired Capabilities對象中編碼的鍵和值,當請求新的自動化會話時,由Appium客戶端發送到Appium Server服務器。Desired Capabilities告訴Appium驅動程序有關您希望測試如何工作的各種重要信息。最終Desired Capabilities將作為JSON對象發送到Appium。- 所需功能的
Desired Capabilities對象可以在WebDriver測試中編寫腳本,也可以在Appium Server GUI中設置(通過Inspector會話中,就是上邊的介紹方式)。
提示:
當
Appium Inspector能夠不能抓取手機屏幕時,可以關閉和重啟adb服務,或者重啟Appium Inspector服務。命令如下:
adb kill-serveradb start-server
5、Appium Inspector工具的使用
(1)Inspector 定位控件界面的詳細介紹

上圖說明:
- 布局1:截圖的手機界面
可以點擊選擇元素。 - 布局2:頂部操作欄
從左往右的按鈕依次是
Select Element:選擇元素。
Swipe By Coordinates:選擇滑動的起始和結束位置。
Tap By Coordinates:使得手機界面變換可操作狀態,可以點擊界面的元素。
Back:模擬Android的返回鍵。
Refresh Source & Screenshot:刷新頁面,用來重新獲取手機當前界面。
Start Recording:錄制操作。
Search for element:校驗定位表達式。
Copy XML Source to Clipboard:復制XML樹。
Quit Session & Close Inspector:退出當前Session。 - 布局3:XML樹
以XML樹的形式,展示界面上的控件布局。 - 布局4:控件屬性區域
選擇某個控件,在這里可以顯示該控件的所有屬性和值。
(2)Selected Element 的介紹
選擇元素功能:

1)頂部的Tap、Send Keys、Clear
模擬用戶的操作:
tap:相當於點擊該元素。send keys:輸入值,針對輸入框的操作。clear:清空所有值。
建議:不建議用這些操作,因為很容易造成斷開連接(左側界面一直loading)....反正我這邊經常這樣,如果不會的話當然最好用啦!
2)Find By xpath
提供了該元素的XPATH表達式
不推薦用,絕對路徑太長了..........還是自己寫吧!
3)那串黃色背景色的英文
不建議使用XPath定位器,因為它很脆弱,建議讓開發團隊提供獨特的可訪問性定位器(即:resource-id)
4)Attribute - Value
屬性列表。
(3)Search for element 的介紹
搜索元素功能,位置如下圖:

點擊彈出如下界面:
選擇定位策略,如下圖:

填寫對應的定位表達式,如下圖:

點擊Search就可以進行元素定位了。
如果能找到Elements的話表達式就是正確的,然后你還可以針對該元素進行一些操作。
(4)在Appium Inspector中操作手機
當我們使用Appium Inspector定位工具獲取到手機設置APP界面的時候,如下圖:

點擊頂部操作欄中的Tap By Coordinates按鈕,使得手機界面變換可操作狀態。
然后我們在左側的手機界面中點擊顯示,就可以進入到顯示的界面中了。


進入到顯示之后,現在我們還是保持在可操作手機的狀態。
之后我們就可以繼續操作手機,也可以點擊Select Element按鈕,在當前頁面中進行選擇的元素。

我們也可以點擊Back按鈕,返回到設置APP的首界面。

提示:這一點
Appium Inspector定位工具就比uiautomatorviewer定位工具方便多了。
(5)Start Recording 的介紹(了解)

- 操作步驟:點擊開始錄制之后,再點擊
Tap By Coordinates,進入界面可操作狀態。 - 然后就可以開始點擊你想要的元素了,這個時候就開始錄制了。
- 最后在
Recorder下面會顯示對應的代碼,右側可以選擇不同的語言。 - 建議:不要過多使用該功能,可以看到錄制的代碼是根據坐標去定位元素的,換個手機同一個元素坐標可能就不同了,可移植性不高。
6、UIAutomatorviewer工具和Appium Inspector工具對比
(1)UIAutomatorviewer 的局限性:
- 不能校驗我們寫的定位表達式是否正確定位到控件(類似瀏覽器上的F12)。
- 連接不夠穩定。
- 不能模擬用戶動作。
(2)Appium Desktop的Inspector的優勢:
- 可以校驗定位表達式(如:XPATH表達式)。
- 通過設置
Desired Capabilities來連接手機,比較穩定。 - 可以模擬用戶動作(如:點擊,返回,滑動等操作)。
- 可以錄制一系列操作,然后轉換成代碼。
提示:
學習或者編寫腳本過程中,使用桌面版會方便一些,因為桌面版還提供了定位工具。
而實際運行的時候,使用Server版本會更靈活、更容易與CI工具進行集成。
說明:
我們先介紹
Appium Inspector工具的使用,關於如何定位頁面中的元素,之后的文章會詳細說明。
參考:
