『與善仁』Appium基礎 — 18、元素定位工具(二)


APP中的元素定位工具大致有三種:

  • uiautomatorviewer工具
  • Appium Inspector工具
  • Chrome Inspect工具

提示:本篇文章介紹Appium Inspector工具。

1、Appium Inspector介紹

之前我們說過Appium Server有兩種啟動方式,

  • 一種是Appium Desktop有圖形界面的啟動方式,稱之為桌面版;
  • 另一種版本是通過npm安裝,使用命令行參數啟動的Appium Server

Appium Inspector工具就在Appium Desktop中,Appium InspectorAppium Desktop附帶的一個元素定位檢查器,用來調試定位應用程序很方便。

Appium Inspector工具同時支持Android系統和IOS系統中原生界面的元素定位。

2、Appium Inspector打開方式

Appium Desktop安裝完成之后,雙擊打開。

image

說明:界面有 3 個 Tab 選項

  • Simple:默認配置,監聽本機 4723 端口;
  • Advanced:高級設置,可以自定義Appium server端的配置,配置好后可以保存到Presets
  • Presets:修改Advanced高級設置中的配置項。

一般我們測試直接使用Simple即可,點擊 Start Server 按鈕,啟動Appium server,並開啟監聽本機 4723端口。

開啟服務后,界面跳轉到服務端控制台,如下圖所示:

image

提示:

控制台顯示運行的腳本中的日志信息,右上角有 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工具。

如下圖:

image

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

image

3、Appium Inspector布局介紹

Appium Inspector布局如下圖所示:

image

上圖說明:

  1. 布局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. 布局2是高級設置。
    可以設置:
    Allow Unauthorized Certificates:允許未經授權的證書。
    Use Proxy:使用代理服務器。
    初學一般我們不進行高級設置。
  3. 布局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參數(重點)

可以在左側一行一行手動添加,如下圖所示:

image

提示:第二列的格式是針對第三列value值而言的。

也可以把Json格式的數據編輯好,直接粘貼在右側JSON Representation里。

image

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

image

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

image

4)保存Desired Capabilities參數

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

image

image

5)查看和修改已存儲的Desired Capabilities

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

image

6)開啟Session,連接手機獲取手機界面

點擊Start Session,開啟使用Appium Inspector工具。

如下圖所示:

image

說明:

  • 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 定位控件界面的詳細介紹

image

上圖說明:

  • 布局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 的介紹

選擇元素功能:

image

1)頂部的TapSend KeysClear

模擬用戶的操作:

  • tap:相當於點擊該元素。
  • send keys:輸入值,針對輸入框的操作。
  • clear:清空所有值。

建議:不建議用這些操作,因為很容易造成斷開連接(左側界面一直loading)....反正我這邊經常這樣,如果不會的話當然最好用啦!

2)Find By xpath

提供了該元素的XPATH表達式

不推薦用,絕對路徑太長了..........還是自己寫吧!

3)那串黃色背景色的英文

不建議使用XPath定位器,因為它很脆弱,建議讓開發團隊提供獨特的可訪問性定位器(即:resource-id)

4)Attribute - Value

屬性列表。

(3)Search for element 的介紹

搜索元素功能,位置如下圖:

image

點擊彈出如下界面:

選擇定位策略,如下圖:

image

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

image

點擊Search就可以進行元素定位了。

如果能找到Elements的話表達式就是正確的,然后你還可以針對該元素進行一些操作。

(4)在Appium Inspector中操作手機

當我們使用Appium Inspector定位工具獲取到手機設置APP界面的時候,如下圖:

image

點擊頂部操作欄中的Tap By Coordinates按鈕,使得手機界面變換可操作狀態。

然后我們在左側的手機界面中點擊顯示,就可以進入到顯示的界面中了。

image

image

進入到顯示之后,現在我們還是保持在可操作手機的狀態。

之后我們就可以繼續操作手機,也可以點擊Select Element按鈕,在當前頁面中進行選擇的元素。

image

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

image

提示:這一點Appium Inspector定位工具就比uiautomatorviewer定位工具方便多了。

(5)Start Recording 的介紹(了解)

image

  • 操作步驟:點擊開始錄制之后,再點擊Tap By Coordinates,進入界面可操作狀態。
  • 然后就可以開始點擊你想要的元素了,這個時候就開始錄制了。
  • 最后在Recorder下面會顯示對應的代碼,右側可以選擇不同的語言。
  • 建議:不要過多使用該功能,可以看到錄制的代碼是根據坐標去定位元素的,換個手機同一個元素坐標可能就不同了,可移植性不高。

6、UIAutomatorviewer工具和Appium Inspector工具對比

(1)UIAutomatorviewer 的局限性:

  1. 不能校驗我們寫的定位表達式是否正確定位到控件(類似瀏覽器上的F12)。
  2. 連接不夠穩定。
  3. 不能模擬用戶動作。

(2)Appium DesktopInspector的優勢:

  1. 可以校驗定位表達式(如:XPATH表達式)。
  2. 通過設置Desired Capabilities來連接手機,比較穩定。
  3. 可以模擬用戶動作(如:點擊,返回,滑動等操作)。
  4. 可以錄制一系列操作,然后轉換成代碼。

提示:

學習或者編寫腳本過程中,使用桌面版會方便一些,因為桌面版還提供了定位工具。

而實際運行的時候,使用Server版本會更靈活、更容易與CI工具進行集成。

說明:

我們先介紹Appium Inspector工具的使用,關於如何定位頁面中的元素,之后的文章會詳細說明。

參考:


免責聲明!

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



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