Appium定位方式總結

來源:互聯網
上載者:User

標籤:包含   提示   架構   元素   速度   app   擷取   extc   class   

通過appium-desktop定位元素

 

 

 

ClassName

Android

Android的class屬性對應ClassName定位方式,ClassName一般都是會重複的,可以通過index來擷取需要的元素。(從0開始尋找dom樹中的同名class屬性)

iOS

iOS的type屬性對應CLassName定位方式,ClassName一般都是會重複的,可以通過index來擷取需要的元素。(從0開始尋找dom樹中的同名class屬性)

 

ID

Android

Android的resource-id對應ID定位方式,這個id也可能存在重複情況,可以通過index來擷取需要的元素。(從0開始尋找dom樹中的同名resource-id屬性)

使用appium-desktop來擷取元素時,如果提示有id的定位方式,則可以只接擷取,代表唯一。

 

XPATH

Android

Android的Xpath定位與PC的XPATH定位大同小異,可以通過相對路徑的定位方式定位,區別在於,這裡相對路徑定位的//後只可以接Android的class屬性或*。(//android.widget.Button[@text="登 錄"])

iOS

iOS10 以上使用XCUITest架構後,原生架構不支援XPATH,Appium進行了轉換,速度很慢不建議使用。

 

AccessibilityId

Android

Android的content-desc屬性對應AccessibilityId定位方式,這個content-desc屬性專門為殘障人士設定,如果這個屬性不為空白則推薦使用。

iOS

iOS的label和name屬性都對應AccessibilityId定位方式,如果有則推薦使用。

 

AndroidUIAutomator

Android的源生測試架構的定位方式,定位速度快。推薦使用牢記常用的幾種。

開啟方法:

 

# 這個在運行時,調用的是Android內建的UI架構UiAutomator的Api# 介紹幾個簡單常用的,text、className、resource-id# text# 匹配全部text文字driver.find_element_by_android_uiautomator(‘new UiSelector().text("手機號")‘)# 包含text文字driver.find_element_by_android_uiautomator(‘new UiSelector().textContains("機")‘)# 以text什麼開始driver.find_element_by_android_uiautomator(‘new UiSelector().textStartsWith("手")‘)# 正則匹配textdriver.find_element_by_android_uiautomator(‘new UiSelector().textMatches("^手.*")‘) # classNamedriver.find_elements_by_android_uiautomator(‘new UiSelector().className("android.widget.TextView")‘)# classNameMatchesdriver.find_elements_by_android_uiautomator(‘new UiSelector().classNameMatches("^android.widget.*")‘) # resource-id、resourceIdMatches    類似我們html id 這個可能重複,
 driver.find_element_by_android_uiautomator(‘new UiSelector().resourceId("com.syqy.wecash:id/et_content")‘) # description driver.find_element_by_android_uiautomator(‘new UiSelector().description("S 日曆")‘) # descriptionStartsWith driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionStartsWith("日曆")‘) # descriptionMatches driver.find_element_by_android_uiautomator(‘new UiSelector().descriptionMatches(".*曆$")‘) 

iOSPredicateString

僅支援iOS10以上,可以多個屬性同時定位,推薦。(替代XPATH)

driver.find_elements_by_ios_predicate("label == ‘登入‘") driver.find_elements_by_ios_predicate("type=‘XCUIElementTypeOther‘ and name=‘連絡人,標籤, 第2個按鈕,共3個‘")

iOSUIAutomation

iOS9.3以下使用,現在已經廢棄,iOSPredicateString代替了iOSUIAutomation

Appium定位方式總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.