appium—定位Toast元素
定位Toast元素
Appium1.6.3開始支援識別toast,且是基於uiautomator2,因此需要如下設定
環境準備
步驟一:安裝node js
進入官網下載:https://nodejs.org/en/ 下載node js,並安裝好
驗證是否安裝成功:npm -v
步驟二:安裝npm包
進行npm包的安裝,此時可以將npm換成淘寶的映象,可以提高程式執行速度,分享一下切換淘寶源的兩種方法:
1.通過config命令
npm config set registry https://registry.npm.taobao.org
2.命令列方式(本文以此為例)
npm --registry https://registry.npm.taobao.org info underscore
安裝成功後顯示:
步驟三:通過淘寶映象安裝cnpm:
npm install -g cnpm --registry=https://registry
.npm.taobao.org
驗證安裝成功:
步驟四:安裝uiautomator2
輸入指令:>cnpm install appium-uiautomator2-driver
安裝完成:
驗證安裝成功:
安裝selenium:
輸入指令pip install selenium
驗證安裝成功:pip show selenium
編輯識別toast元素的指令碼
步驟一:初始化
在capability配置內部增加:desired_caps[‘uiautomationName’]=’ uiautomator2’
步驟二:定位toast元素
(1)定義toast文字內容
(2)定義路徑
(3)組合文字內容和路徑進行定位:用format()連線路徑和文字內容
指令碼:
error_message="登入密碼錯誤"
message='//*[@text=\'{}\']'
toast_element=WebDriverWait(driver,5).until(lambda x:x.find_element_by_xpath(message))
print(toast_element.text)
[JSONWP Proxy] Proxying [POST /touch/perform] to [POST http://localhost:8212/wd/hub/session/9c927409-74fe-4333-a9cc-fd8219c00946/touch/perform] with body: {"startX":810,"startY":960,"endX":54,"endY":960,"steps":28}
說明:
連線不同的型別的變數或內容format()
顯示等待:webdriver(driver,5)
driver是webdriver的驅動程式,5是超時時間,以秒為單位
WebDriverWait()一般由 until()或 until_not()方法配合使用,下面是 until()和 until_not()方法的說明。
until(method, message=’’)
呼叫該方法提供的驅動程式作為一個引數,直到返回值不為 False。
until_not(method, message=’’)
呼叫該方法提供的驅動程式作為一個引數,直到返回值為 False。
動態函式:lambda x:x+5
X是函式的引數,冒號後面是函式的返回值
Appium的三種等待時間:https://testerhome.com/topics/2576