Appium學習19:元素等待

在自動化過程中,元素出現受網絡環境,設備性能等多種因素影響。因此元素加載的時間可能不一致,從而會導致元素無法定位超時報錯,但是實際上元素是正常加載了的,只是出現時間晚一點而已。那麼如何解決這個問題呢?

元素等待作用

設置元素等待可以更加靈活的制定等待定位元素的時間,從而增強腳本的健壯性,提高執行效率。

元素等待類型

強制等待

設置固定的等待時間,使用sleep()方法即可實現

from time import sleep
#強制等待5秒
sleep(5)

隱式等待

隱式等待是針對全部元素設置的等待時間

driver.implicitly_wait(20)

顯式等待

顯式等待是針對某個元素來設置的等待時間。

方法WebDriverWait格式參數如下:

from selenium.webdriver.support.ui import WebDriverWait

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
driver : WebDriver
timeout : 最長超時時間,默認以秒爲單位
poll_frequency : 休眠時間的間隔時間,默認爲0.5秒
ignored_exceptions : 超時後的異常信息,默認情況下拋NoSuchElementException異常。

WebDriverWait()一般和until()或until_not()方法配合使用,另外,lambda提供了一個運行時動態創建函數的方法。

from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(driver,10).until(lambda x:x.find_element_by_id("elementID"))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章