selenium三種等待方式

隨著對selenium不斷的深入學(xué)習(xí),在網(wǎng)上搜索的資料越多,才發(fā)現(xiàn)自己掌握的只是冰山一角。

1、強制等待

用法:time.sleep(time_to_wait)

? ? ? ? ?? time_to_wait:表示超時時間(秒)

它是全局等待,意思是在指定時間內(nèi)頁面全部加載完成,超過設(shè)定時間后就可以執(zhí)行下一步;反之,在指定時間內(nèi)沒有加載全部元素,會拋出異常。

剛學(xué)自動化的時候,不知道有這么多等待方式,最喜歡的就是用它去調(diào)試腳本,碰上加載不出元素就慢慢的增加時間,到最后整個腳本執(zhí)行完都花了不少時間。現(xiàn)在回想下,可能是強制等待最大的弊端吧,不太靈活!

2、隱式等待

用法:driver.implicity_wait(time_to_wait)

? ? ? ? ? time_to_wait:表示超時時間(秒)

它和強制等待一樣,也是全局等待的意思。在規(guī)定時間內(nèi)找到加裝出頁面所有元素后執(zhí)行下一步;反之,在超過時間還沒加載完成,則拋出異常;它的優(yōu)點是稍微比強制等待靈活一點,加載完元素后就可以執(zhí)行,節(jié)約了部分時間。

3、顯示等待

用法:WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None).until(要執(zhí)行的方法, 超時時返回的錯誤信息)

self, 函數(shù)本身,在實際使用的時候不需要輸入

dirver:實例化的WebDriver驅(qū)動

timeout:超時時間(秒)

poll_frequency=POLL_FREQUENCY:檢查某個元素的時間間隔

ignored_exceptions,超時后的異常信息,默認(rèn)情況下拋 “NoSuchElementException",可忽略

它針對的是某個特定元素,而不是全局等待。在給定時間和條件下,判斷在等待時間內(nèi)條件是否滿足,如果滿足則返回,如果不滿足會繼續(xù)等待,超過時間就會拋出異常。


參考:

https://www.cnblogs.com/minghong/p/11678199.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容