appium元素等待(1)
阿新 • • 發佈:2018-11-08
Appium元素等待(1)
在自動化過程中,受網路環境、裝置效能等等原因影響,元素載入成功展示的時間可能不一致,從而導致元素定位超時未成功定位到而報錯,但是實際上元素是正常的,只是載入時間不一致而已。
元素等待有三種:強制等待、隱式等待、顯示等待
強制等待:
使用方法sleep
語法:
步驟1:匯入方法
步驟2:輸入等待時長,預設以秒為單位
隱式等待:
針對所有元素來設定等待的時間,直接引用implicitly()即可
語法:直接輸入指令碼driver.implicitly(5) #數字是等到超時時間,預設以秒為單位
顯示等待:
針對某個元素來設定等待的時間、
語法:
步驟1:匯入webdriver模組
步驟2:輸入等待時長,預設以 秒為單位
詳細格式:
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
說明:
- driver - WebDriver 的驅動程式(Ie, Firefox, Chrome 或遠端)
- timeout - 最長超時時間,預設以秒為單位
- poll_frequency - 休眠時間的間隔(步長)時間,預設為 0.5 秒
- ignored_exceptions - 超時後的異常資訊,預設情況下拋 NoSuchElementException 異常。
其他:
WebDriverWai()一般由 until()或 until_not()方法配合使用,下面是 until()和 until_not()方法的說明。
until(method, message=’’)
呼叫該方法提供的驅動程式作為一個引數,直到返回值不為 False。
until_not(method, message=’’)
呼叫該方法提供的驅動程式作為一個引數,直到返回值為 False。
lambda
lambda 提供了一個執行時動態建立函式的方法。
示例:
Lambda函式簡要說明:
Lambda函式是匿名的,所謂匿名函式,通俗的說是沒有名字的函式
冒號左側是引數,多個引數則使用逗號隔開
冒號右側是返回值
例如:
Lambda x,y:x*y 函式的輸入是X,Y;輸出是x*y