1. 程式人生 > >appium元素等待(1)

appium元素等待(1)

Appium元素等待(1)

在自動化過程中,受網路環境、裝置效能等等原因影響,元素載入成功展示的時間可能不一致,從而導致元素定位超時未成功定位到而報錯,但是實際上元素是正常的,只是載入時間不一致而已。

元素等待有三種:強制等待、隱式等待、顯示等待

強制等待:

使用方法sleep

語法:

步驟1:匯入方法

步驟2:輸入等待時長,預設以秒為單位

隱式等待:

針對所有元素來設定等待的時間,直接引用implicitly()即可

語法:直接輸入指令碼driver.implicitly(5)  #數字是等到超時時間,預設以秒為單位

顯示等待:

針對某個元素來設定等待的時間、

語法:

步驟1:匯入webdriver模組

步驟2:輸入等待時長,預設以 秒為單位

詳細格式:

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

說明:

  1. driver - WebDriver 的驅動程式(Ie, Firefox, Chrome 或遠端)
  2. timeout - 最長超時時間,預設以秒為單位
  3. poll_frequency - 休眠時間的間隔(步長)時間,預設為 0.5 秒
  4. 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