元素定位方式有多種,android也有自身獨有的定位方式。下面就單獨介紹其基於uiautomator定位元素的方法:
基本語法:
driver.find_element_by_android_uiautomator(xx)
1).通過text文字定位語法
new uiselector().text("text文字")
#2).如果文字比較長,可以用textcontains模糊匹配text
loc_text = '
new uiselector().text("圖書")
'driver.find_element_by_android_uiautomator(loc_text).click()
new uiselector().textcontains("包含text文字")
#3).同樣可以用textstartswith是以某個文字開頭來匹配textcontains
loc_textcontains = '
new uiselector().textcontains("圖")
'driver.find_element_by_android_uiautomator(loc_textcontains).click()
new uiselector().textstartswith("以text文字開頭")
#4).也可以用正規表示式textmatches匹配textstartswith
loc_textstart = '
new uiselector().textstartswith("圖")
'driver.find_element_by_android_uiautomator(loc_textstart).click()
new uiselector().textmatches("正規表示式")
2.resourceid
與by_id一樣
3.classname頁面上的class屬性一般不唯一,多半用在複數定位時候。此時定位相應下標
classname複數定位
loc_class = '
new uiselector().classname("android.widget.textview")
'driver.find_elements_by_android_uiautomator(loc_class)[2].click()
4.description也是用contenet-des屬性定位
new uiselector().description("contenet-des屬性")
5.組合定位
1).id與text屬性組合
2).class與text屬性組合
#6.關係定位1).父子定位childselectorclass+text
class_text = '
classname("android.widget.textview").text("圖書")
'driver.find_element_by_android_uiautomator(class_text).click()
有時候不能直接定位某個元素,但是它的父元素很好定位,這時候就先定位父元素,通過父元素找兒子
如上定位書架:
#2).兄弟定位fromparent父子關係childselector
有時候父元素不好定位,但是跟他相鄰的兄弟元素很好定位,這時候就可以通過兄弟元素,找到同一父級元素下的子元素
如上定位書架:
#兄弟關係fromparent
brother = '
resourceid("com.baidu.yuedu:id/lefttitle").fromparent(text("圖書"))
'driver.find_element_by_android_uiautomator(brother).click()
Appium之ADB指令詳解
前言 學android測試,adb指令是必學的。圖1一 adb概述 android debug bridge,android除錯橋接器,簡稱adb,是用於管理模擬器或真機狀態的萬能工具,採用了客戶端 伺服器模型,包括三個部分 1 客戶端部分,執行在開發用的電腦上,可以在命令列中執行adb命令來呼叫該...
Appium搭建二 安裝Appium
web自動化測試的路線是這樣的 程式語言基礎 測試框架 webdriver api 開發自動化測試專案。測試大神 蟲師的部落格。本篇安裝環境是window 7 64位 easy setup process,run a test now.brew install node get node.js 所以...
Appium基礎一 Appium概念
介紹 設計思想 2.2 你不必侷限於某種語言或者框架或者平台來書寫和執行測試 2.3 乙個移動自動化的框架不應該在介面上重複造輪子。移動自動化的介面應該統一 2.4 源 必須開源 名詞 c s 架構 session 自動化始終圍繞乙個session進行,客戶端初始化乙個seesion 會話 來與服務...