WebDriverWait等設定等待時間和超時時間

2022-09-15 07:30:12 字數 2163 閱讀 6399

等待頁面載入完成,找到某個條件發生後再繼續執行後續**,如果超過設定時間檢測不到則丟擲異常

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

——driver:webdriver 的驅動程式(ie, firefox, chrome 或遠端)

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

——poll_frequency:休眠時間的間隔(步長)時間,預設為 0.5 秒

——ignored_exceptions:超時後的異常資訊,預設情況下拋 nosuchelementexception 異常

——如1:element = webdriverwait(driver, 10).until(lambda x : x.find_element_by_id("id"))

element.send_keys("selenium")

——如2:element = webdriverwait(driver, 10).until(lambda x: x.find_element_by_id(「id」))

webdriverwai()一般由 unit()或 until_not()方法配合使用:

——until(method, message=』』)      呼叫該方法提供的驅動程式作為乙個引數,直到返回值不為 false。——until_not(method, message=』』)      呼叫該方法提供的驅動程式作為乙個引數,直到返回值為 false。

fromseleniumimportwebdriver

fromselenium.webdriver.support.uiimportwebdriverwait

driver=webdriver.firefox()

driver.get()

webdriverwait(driver, 10).until(lambdadriver: driver.find_element_by_id("someid"))

#通過檢查某個元素是否被載入來檢查是否登入成功,我認為當個黑盒子用就可以了。其中10的解釋:10秒內每隔0.5毫秒掃瞄1次頁面變化,直到指定的元素

2.隱示等待:implicitly_wait

# 相當於設定全域性的等待,在定位元素時,對所有元素設定超時時間,超出了設定時間則丟擲異常

# 隱式等待使得webdriver在查詢乙個element或者element陣列時,每隔一段特定的時間就會輪詢一次dom,如果element或陣列沒有馬上被發現的話。

# 預設設定是0。

# 一旦設定,這個隱式等待會在webdriver物件例項的整個生命週期起作用。

driver =

webdriver.firefox()

driver.implicitly_wait(10)

3.強制等待

import time

time.sleep(10)

4.設定超時:

pageloadtimeout方法用來設定頁面完全載入的超時時間,完全載入即頁面全部渲染,非同步同步指令碼都執行完成。前面的文章都是使用get 方法登入安居客**,大家應該能感覺到每次開啟網頁後要等很長一段時間才會進行下一步的操作,那是因為沒有設定超時時間而get方法預設是等待頁面全部加 載完成才會進入下一步驟,加入將超時時間設定為3s就會中斷操作丟擲異常

當頁面載入後就會執行下面的操作了

setscripttimeout設定非同步指令碼的超時時間,用法同pageloadtimeout一樣就不再寫了,非同步指令碼也就是有async屬性的js指令碼,可以在頁面解析的同時執行。

from selenium import

webdriver

d=webdriver.phantomjs()

d.set_page_load_timeout(10)

d.set_script_timeout(10)#

這兩種設定都進行才有效,未測試

參考:selenium設定元素發現超時等待時間-python

selenium webdriver—超時設定

selenium 超時設定/等待時間過長自動停止(python)

顯示等待WebDriverWait

1.等待的三種方式 1 time.sleep 2 程序休眠 s 2 implicitly wait 30 等待頁面完全載入完成,指的是左上角轉圈結束,很耗費時間 3 webdriverwait self,driver,timeout,poll frequency poll frequency,ign...

WebDriverWait類的介紹

1 element to be clickable locator 是等待頁面元素可見的時候操作,會設定一定範圍的時間,如果在時間範圍內,元素可見,就執行操作,元素不可見,就會引發timeoutexception的異常。如下是element to be clickable element webdr...

顯示等待WebDriverWait常用寫法解析

在網路上各種selenium自動化測試框架搭建的過程中,對於selenium顯示等待有好幾種寫法,包含但不限於以下幾種 先來簡單看看寫法,在webdriverwait初始化時傳入了driver引數,然後呼叫until方法,傳入了乙個lambda匿名函式 webdriverwait self.driv...