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-server
adb 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
工具的使用,關於如何定位頁面中的元素,之后的文章會詳細說明。
參考: