1. 程式人生 > >AppiumLibrary 之元素定位

AppiumLibrary 之元素定位

一、介紹

AppiumLibrary 是 Robot Framework 的App測試庫。

它使用Appium 與Android 和 iOS應用程式進行通訊,類似於Selenium WebDriver與Web瀏覽器的對話。

AppiumLibrary是仿照、引用appiumandroidlibrary,但重新實現使用appium 1.X技術,它完全支援Python 2.7,但對python 3.3+的支援仍然是實驗性的。

二、定位控制元件

AppiumLibrary需要在應用程式中查詢元素的所有關鍵字都使用引數locator。

當提供locator值時,它將與特定元素型別的鍵屬性進行匹配。支援的定位器(locator)有:

定位器 格式 描述
identifier Click Element | identifier=my_element 匹配 @id 或 @name 屬性
id Click Element | id=my_element 匹配 @id 屬性
name Click Element | name=my_element 匹配 @name 屬性
xpath Click Element | xpath=//UIATableView/UIATableCell/UIAButton 匹配 XPath
class Click Element | class=UIAPickerWheel 匹配 class name
accessibility_id Click Element | accessibility_id=t 匹配 輔助選項
android Click Element | android=new UiSelector().description('Apps') 匹配 Android UI Automator
ios Click Element | ios=.buttons().withName('Apps') 匹配 iOS UI Automation
css Click Element | css=.green_button 匹配 css in webview

三、定位工具

1. Appium通過 uiautomatorviewer.bat工具來檢視控制元件的屬性,該工具位於Android SDK的Tools目錄下。 2. 雙擊開啟即可,為了方便起見,建議新增快捷方式到桌面。 3. 然後USB連線真機(安裝手機驅動,授權連線) 或者開啟AVD模擬機,點選獲取詳細布局。

四、定位元素

1. identifier 定位

說明:匹配 @id 或 @name 屬性,分別對應 resource-id 和 text 屬性。

案例:點選計算器數字“ 9 ”,可以使用id定位,也可以使用name定位。

Click Element  identifier=com.android.calculator2:id/digit_9
Click Element identifier=9

2. id 定位 

說明:匹配 @id 屬性,對應 resource-id 屬性。

案例:點選計算器輸入框,id可以指定也可以不指定,如果不指定策略,預設就是id定位。

Click Element  id=com.android.calculator2:id/formula
Click Element com.android.calculator2:id/formula

3. name 定位

說明:匹配 @name 屬性,對應 text 屬性。

案例:點選計算器數字“ 9 ”。

Click Element name=9              

4. xpath 定位

說明:匹配 Xpath ,這也是功能最強大的一種定位方式,不過通常用於web自動化。

案例:點選計算器數字“ 7 ”。

Click Element xpath=//android.widget.Button[contains(@text,'7')]

附加Xpath定位表示式說明:

5. class 定位

說明:匹配 class name ,對應 class 屬性,但通常class屬性都不唯一。

案例:點選計算器數字“ 6 ”。

Click Element class=android.widget.Button 

6. accessibility_id 定位

說明:匹配 輔助選項,這個方法屬於Appium擴充套件的定位方法,主要就是content-desc屬性。

案例:點選計算器加號“ + ”。

Click Element accessibility_id=plus       

7. android 定位

說明:匹配 Android UI Automator。

案例:點選計算器加號“ + ”。

Click Element android=new UiSelector().description(\"plus\")

 

8. css 定位

說明:匹配 css in webview。

案例:點選計算器加號“ + ”。

Click Element css=.com.android.calculator2:id/op_add

9. ios 定位

說明:匹配 iOS UI Automation。

案例:

Click Element ios=.buttons().withName('Apps')