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è)置隱式等待最大時(shí)間n秒,等待元素加載完成,如果到了時(shí)間元素沒(méi)有加載出,就拋出一個(gè)NoSuchElementException的錯(cuò)誤。
3.顯式等待
調(diào)用WebDriverWait()類,顯性等待是對(duì)指定元素進(jìn)行等待的一種等待方式。通過(guò)設(shè)置最大等待時(shí)間,檢查頻率對(duì)頁(yè)面的元素來(lái)進(jìn)行等待,一旦找到元素,則停止等待,進(jìn)入后續(xù)步驟,否則繼續(xù)等待,直到超過(guò)設(shè)置的最長(zhǎng)時(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 等待時(shí)間:? 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)確把握等待時(shí)間,若大量使用會(huì)影響執(zhí)行效率,浪費(fèi)不必要的時(shí)間
優(yōu)點(diǎn):調(diào)用簡(jiǎn)單,可在調(diào)試時(shí)使用
2.隱式等待
缺點(diǎn):使用不是很靈活,程序會(huì)一直等待整個(gè)頁(yè)面加載完成,才會(huì)執(zhí)行下一步操作,需要等待時(shí)間完成;在等待時(shí)間內(nèi)頁(yè)面沒(méi)有加載完成,時(shí)間一到也會(huì)進(jìn)入下一步操作,要定位的元素沒(méi)有出現(xiàn)則會(huì)報(bào)元素?zé)o法找到的錯(cuò)誤
優(yōu)點(diǎn):對(duì)整個(gè)driver的周期都起作用,每一次操作都會(huì)隱式等待,只設(shè)置一次
3.顯示等待
缺點(diǎn):使用相對(duì)復(fù)雜,和強(qiáng)制等待類似,每一行等待只執(zhí)行一次
優(yōu)點(diǎn):等待判斷準(zhǔn)確,不會(huì)浪費(fèi)多余的等待時(shí)間,可提高執(zhí)行效率
總結(jié)
到此這篇關(guān)于python的三種等待方式及優(yōu)缺點(diǎn)小結(jié)的文章就介紹到這了,更多相關(guān)python三種等待方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Pandas兩個(gè)表格內(nèi)容模糊匹配的實(shí)現(xiàn)
模糊查詢大家應(yīng)該都不會(huì)陌生,下面這篇文章主要給大家介紹了關(guān)于Python Pandas兩個(gè)表格內(nèi)容模糊匹配的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11python中asyncore異步模塊的實(shí)現(xiàn)
本文主要介紹了python中asyncore異步模塊的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Python count函數(shù)使用方法實(shí)例解析
這篇文章主要介紹了Python count函數(shù)使用方法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Python continue語(yǔ)句實(shí)例用法
在本篇文章里小編給大家整理了關(guān)于Python continue語(yǔ)句實(shí)例用法,有需要的朋友們可以跟著學(xué)習(xí)下。2020-02-02python獲取list下標(biāo)及其值的簡(jiǎn)單方法
下面小編就為大家?guī)?lái)一篇python獲取list下標(biāo)及其值的簡(jiǎn)單方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09python面試題Python2.x和Python3.x的區(qū)別
這篇文章主要介紹了python面試題Python2.x和Python3.x的區(qū)別 ,在面試中也經(jīng)常會(huì)問(wèn)到,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Python pip通過(guò)requirements.txt 文件安裝依賴
requirements.txt是定義項(xiàng)目依賴的python包,可通過(guò)工具生成,本文主要介紹了Python pip通過(guò)requirements.txt文件安裝依賴,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03