在自動化過程中,受網路環境、裝置效能等等原因影響,元素載入成功展示的時間可能不一致,從而導致元素定位超時未成功定位到而報錯,但是實際上元素是正常的,只是載入時間不一致而已。
元素等待有三種:強制等待、隱式等待、顯示等待
使用方法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
appium等待元素
thread.sleep 60000 強制等待60s driver.manage timeouts implicitlywait 30,timeunit.seconds 全域性等待30s不管元素是否已經載入 1 當使用了隱式等待執行測試的時候,如果webdriver沒有在dom中找到元素,將繼續等待...
appium 元素定位
查詢控制項的方式 1.通過id查詢 self.driver.find element by id com.guokr.mentor id text view topic title self.driver.find elements by id 0 2.通過name查詢 self.driver.fi...
appium三種等待方式
第一種 sleep 設定固定休眠時間。python 的 time 包提供了休眠方法 sleep 匯入 time包後就可以使用 sleep 進行指令碼的執行過程進行休眠。匯入 time 包 import time time.sleep 第二種 implicitly wait 是 webdirver 提...