python的三種等待方式及優(yōu)缺點(diǎn)小結(jié)
一、調(diào)用方式
1.強(qiáng)制等待
調(diào)用time模塊,使用time.sleep(n),強(qiáng)制等待n秒
2.隱式等待
implicitly_wait(n),設(shè)置隱式等待最大時間n秒,等待元素加載完成,如果到了時間元素沒有加載出,就拋出一個NoSuchElementException的錯誤。
3.顯式等待
調(diào)用WebDriverWait()類,顯性等待是對指定元素進(jìn)行等待的一種等待方式。通過設(shè)置最大等待時間,檢查頻率對頁面的元素來進(jìn)行等待,一旦找到元素,則停止等待,進(jìn)入后續(xù)步驟,否則繼續(xù)等待,直到超過設(shè)置的最長時間,然后拋出TimeoutException異常。
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# 設(shè)置瀏覽器:driver 等待時間:?
wait = WebDriverWait(driver, 秒數(shù))# 重要!
# 設(shè)置判斷條件:等待id='kw'的元素加載完成
input_box = wait.until(EC.presence_of_element_located((By.ID, 'kw')))
# 在關(guān)鍵詞輸入:關(guān)鍵詞
input_box.send_keys('關(guān)鍵詞')
driver.quit()二、優(yōu)缺點(diǎn)
1.強(qiáng)制等待
缺點(diǎn):較為死板,不能準(zhǔn)確把握等待時間,若大量使用會影響執(zhí)行效率,浪費(fèi)不必要的時間
優(yōu)點(diǎn):調(diào)用簡單,可在調(diào)試時使用
2.隱式等待
缺點(diǎn):使用不是很靈活,程序會一直等待整個頁面加載完成,才會執(zhí)行下一步操作,需要等待時間完成;在等待時間內(nèi)頁面沒有加載完成,時間一到也會進(jìn)入下一步操作,要定位的元素沒有出現(xiàn)則會報(bào)元素?zé)o法找到的錯誤
優(yōu)點(diǎn):對整個driver的周期都起作用,每一次操作都會隱式等待,只設(shè)置一次
3.顯示等待
缺點(diǎn):使用相對復(fù)雜,和強(qiáng)制等待類似,每一行等待只執(zhí)行一次
優(yōu)點(diǎn):等待判斷準(zhǔn)確,不會浪費(fèi)多余的等待時間,可提高執(zhí)行效率
總結(jié)
到此這篇關(guān)于python的三種等待方式及優(yōu)缺點(diǎn)小結(jié)的文章就介紹到這了,更多相關(guān)python三種等待方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中l(wèi)ogging日志模塊代碼調(diào)試過程詳解
這篇文章主要介紹了Python中l(wèi)ogging日志模塊代碼調(diào)試,今天來看看如何在代碼中定義日志,并探討日志的權(quán)限,需要的朋友可以參考下2023-04-04
Python多叉樹的構(gòu)造及取出節(jié)點(diǎn)數(shù)據(jù)(treelib)的方法
今天小編就為大家分享一篇Python多叉樹的構(gòu)造及取出節(jié)點(diǎn)數(shù)據(jù)(treelib)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
python如何用pymodbus庫進(jìn)行modbus tcp通信
這篇文章主要介紹了python如何用pymodbus庫進(jìn)行modbus tcp通信問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
使用tensorflow根據(jù)輸入更改tensor shape
這篇文章主要介紹了使用tensorflow根據(jù)輸入更改tensor shape,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
window7下的python2.7版本和python3.5版本的opencv-python安裝過程
這篇文章主要介紹了window7下的python2.7版本和python3.5版本的opencv-python安裝過程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
python實(shí)現(xiàn)tree命令的使用示例
本文主要介紹了python實(shí)現(xiàn)tree命令的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
使用Python實(shí)現(xiàn)從麥克風(fēng)獲取音頻并識別
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)從麥克風(fēng)獲取音頻并識別功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02

