webdriver中的等待

2021-10-06 06:41:54 字數 1159 閱讀 2773

webdriver中的等待——主要講解webdriverwait()

強制等待:sleep()

import time

sleep(5) #等待5秒

設定固定休眠時間,單位為秒。 由python的time包提供, 匯入 time 包後就可以使用。

缺點:不智慧型,使用太多的sleep會影響指令碼執行速度。

隱式等待:implicitly_wait()

driver.implicitly_wait(10) #隱式等待10秒

由webdriver提供的方法,一旦設定,這個隱式等待會在webdriver物件例項的整個生命週期起作用,它不針對某乙個元素,是全域性元素等待,即在定位元素時,需要等待頁面全部元素載入完成,才會執行下乙個語句。如果超出了設定時間的則丟擲異常。

顯示等待:webdriverwait()

webdriverwait(driver,timeout,poll_frequency=0.5,ignored_exceptions=none)

1需要通過from selenium.webdriver.support.wait import webdriverwait匯入模組

driver:瀏覽器驅動

timeout:最長超時時間,預設以秒為單位

poll_frequency:檢測的間隔步長,預設為0.5s

ignored_exceptions:超時後的丟擲的異常資訊,預設丟擲nosuchelementexeception異常

與until()或者until_not()方法結合使用

webdriverwait(driver,10).until(method,message="")

呼叫該方法提供的驅動程式作為引數,直到返回值為true

webdriverwait(driver,10).until_not(method,message="")

呼叫該方法提供的驅動程式作為引數,直到返回值為false

在設定時間(10s)內,等待後面的條件發生。如果超過設定時間未發生,則丟擲異常。在等待期間,每隔一定時間(預設0.5秒),呼叫until或until_not裡的方法,直到它返回true或false.

webdriverwait與expected_conditions結合使用

Webdriver的三大等待

當瀏覽器在載入頁面時,網路不好 裝置的效能差導致與伺服器進行資料互動慢或者頁面渲染需要時間久等等,這些原因均會導致頁面的元素不是同時被載入完成的,所以元素定位可能會因為elementnotvisibleexception而定位不到,就會降低我們自動化測試指令碼的穩定性 故可通過設定元素等待來改善這種...

WebDriver元素等待機制

能否構建健壯和可靠的測試是ui自動化測試能否成功的關鍵因素之一。但實際情況是當乙個測試接著乙個測試執行的時候,常會遇到各種不同的狀況。比如指令碼去定位元素或去驗證程式的執行狀態時,有時會發現找不到元素,這可能是由於突然的資源受限或網路延遲等引起響應速度太慢所導致,這時會返回測試失敗的結果。so我們需...

webdriver中的三大等待及視窗的切換

一 傻等 適用於等待5s以內 time.sleep seconds 二 隱性等待 implicitly wait 30 乙個會話只需要呼叫一次即可,設定等待上限,比如30s,如果你在30秒內元素出現了,就不等了,去執行下一行 如果30秒還沒有出現,就報錯,超時 driver webdriver.ch...