1. 程式人生 > >appium—定位Toast元素

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=\'{}\']'

.format(error_message)
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