appium是跨平臺的,支持OSX,Windows以及Linux系統(tǒng)。它允許測試人員在不同的平臺(iOS,Android)使用同一套API來寫自動化測試腳本,這樣大大增加了iOS和Android測試套件間代碼的復(fù)用性 appium支持多語言,采用C/S設(shè)計模式,只要滿足client能夠發(fā)送http請求給server即可。
Appium元素定位
元素定位,就是尋找元素;而尋找元素的方式,有且只有兩類;
第一類:屬性定位
其包含: 標(biāo)簽名、文本、各類明確的屬性
因為屬性無法窮舉,所以我們約定,只對幾種屬性進(jìn)行定位使用:
1)content-desc ----> 對應(yīng)的appium定位方式 —> accessibility id 定位方式的值 ----> content-desc 屬性的值 (有可能出現(xiàn)定位不到唯一值)
2)class name —> 對應(yīng)的appium定位方式 ----> class name 定位方式的值 ----> class name 屬性的值(有可能出現(xiàn)定位不到唯一值)
3)tag name —> 對應(yīng)的appium定位方式 ----> class name 定位方式的值 —> tag name 的值(appium2.x已經(jīng)舍棄掉了)
4)resource-id ----> 對應(yīng)的appium定位方式 ----> id 定位方式的值 —> resource-id 的值(有可能出現(xiàn)定位不到唯一值)
5)name ----> 對應(yīng)的appium定位方式 ----> name 定位方式的值 —> name 的值(一般都是可以定位到唯一值)
頁面的源碼是前端開發(fā)人員可以操控,他怎么寫這個頁面源代碼,這個頁面源代碼里面的元素就有什么屬性;
下面的 AppiumBy 和 MobileBy 只需要用一個就行了
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.common.mobileby import MobileBy
第二類:路徑定位
利用元素和元素之間的層級關(guān)系進(jìn)行定位
有兩種方式:
1) xpath
2) css selector
路徑的名稱一定是用到標(biāo)簽名、補(bǔ)充描述、層級的表示符;
可能會遇到一些特殊情況:無論怎么定位,元素都會出現(xiàn)N個,都不能定位到你想要的元素;
解決方案一:使用絕對路徑一定能解決;
解決方案二:元素內(nèi)定位(尋找上一級的唯一屬性,再定義下級的位置)
常見問題
理解appium server 和 appium inspector 以及 appium-python-client的關(guān)系
appium server 是作為?個服務(wù)存在;
appium inspector 是?個客戶端,將命令發(fā)送給了 appium server,然后由appium server 將命令轉(zhuǎn)化為移動設(shè)備的操作命令,從?實現(xiàn)移動設(shè)備實現(xiàn)?動化操作;
Appium-python-client 也是?個客戶端,我們運(yùn)?Appium-Python-Client所?成的代碼時,其本質(zhì),也是將代碼發(fā)送給了appium server,appium server 將命令轉(zhuǎn)化為移動設(shè)備的操作命令;從?實現(xiàn)移動設(shè)備實現(xiàn)?動化操作;文章來源:http://www.zghlxwxcb.cn/news/detail-718387.html
appium inspector 在自動化測試過程中,主要是用作調(diào)試工具,本質(zhì)是一個客戶端。文章來源地址http://www.zghlxwxcb.cn/news/detail-718387.html
到了這里,關(guān)于移動端自動化-Appium元素定位的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!