最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬蟲之Selenium設(shè)置元素等待的方法

 更新時(shí)間:2020年12月04日 12:03:31   作者:程序猿雜記  
這篇文章主要介紹了Python爬蟲之Selenium設(shè)置元素等待的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、顯式等待

WebDriverWait類是由WebDirver 提供的等待方法。在設(shè)置時(shí)間內(nèi),默認(rèn)每隔一段時(shí)間檢測(cè)一次當(dāng)前頁(yè)面元素是否存在,如果超過設(shè)置時(shí)間檢測(cè)不到則拋出異常(TimeoutException)

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')

element = WebDriverWait(driver, 5, 0.5).until(
      EC.presence_of_element_located((By.ID, "kw"))
      )
element.send_keys('selenium')
time.sleep(5)

driver.quit()

語法:

  • WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None).until(method, message=‘')

參數(shù)說明如下:

  • driver:瀏覽器驅(qū)動(dòng)
  • timeout:最長(zhǎng)超時(shí)時(shí)間,默認(rèn)以秒為單位
  • poll_frequency:檢測(cè)的間隔時(shí)間,默認(rèn)為0.5s
  • ignored_exceptions:超時(shí)后的異常信息,默認(rèn)情況下拋NoSuchElementException異常
  • until(method, message=‘'):調(diào)用該方法提供的驅(qū)動(dòng)程序作為一個(gè)參數(shù),直到返回值為True
  • until_not(method, message=‘'):調(diào)用該方法提供的驅(qū)動(dòng)程序作為一個(gè)參數(shù),直到返回值為False
  • presence_of_element_located():判斷元素是否存在。

二、隱式等待

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import time

driver = webdriver.Chrome()

# 設(shè)置隱式等待為5秒
driver.implicitly_wait(5)
driver.get("http://www.baidu.com")

try:
 print(time.strftime('%Y-%m-%d %H:%M:%S'))
 driver.find_element_by_id("123456").send_keys('selenium') #不存在的id,看輸出報(bào)錯(cuò)和時(shí)間
 # driver.find_element_by_id("kw").send_keys('selenium') # 存在的id
except NoSuchElementException as e:
 print(e)
finally:
 print(time.strftime('%Y-%m-%d %H:%M:%S'))
 driver.quit()

implicitly_wait() 默認(rèn)0,參數(shù)的單位為秒,上邊設(shè)置的等待時(shí)間為5秒,這個(gè)時(shí)間不像time.sleep(5)那樣直接睡5秒;當(dāng)執(zhí)行流程到某個(gè)元素定位時(shí),如果元素可以定位,則繼續(xù)執(zhí)行;如果元素定位不到,則它將以循環(huán)的方式不斷地判斷元素是否被定位到。比如說在1秒的時(shí)候定位到了,那么直接向下運(yùn)行如果超出設(shè)置時(shí)長(zhǎng),則拋出異常。

Selenium文集傳送門:

標(biāo)題 簡(jiǎn)介
Python爬蟲 - Selenium(1)安裝和簡(jiǎn)單使用 詳細(xì)介紹Selenium的依賴環(huán)境在Windows和Centos7上的安裝及簡(jiǎn)單使用
Python爬蟲 - Selenium(2)元素定位和WebDriver常用方法 詳細(xì)介紹定位元素的8種方式并配合點(diǎn)擊和輸入、提交、獲取斷言信息等方法的使用
Python爬蟲 - Selenium(3)控制瀏覽器的常用方法 詳細(xì)介紹自定義瀏覽器窗口大小或全屏、控制瀏覽器后退、前進(jìn)、刷新瀏覽器等方法的使用
Python爬蟲 - Selenium(4)配置啟動(dòng)項(xiàng)參數(shù) 詳細(xì)介紹Selenium啟動(dòng)項(xiàng)參數(shù)的配置,其中包括無界面模式、瀏覽器窗口大小設(shè)置、瀏覽器User-Agent (請(qǐng)求頭)等等
Python爬蟲 - Selenium(5)鼠標(biāo)事件 詳細(xì)介紹鼠標(biāo)右擊、雙擊、拖動(dòng)、鼠標(biāo)懸停等方法的使用
Python爬蟲 - Selenium(6)鍵盤事件 詳細(xì)介紹鍵盤的操作,幾乎包含所有常用按鍵以及組合鍵
Python爬蟲 - Selenium(7)多窗口切換 詳細(xì)介紹Selenium是如何實(shí)現(xiàn)在不同的窗口之間自由切換
Python爬蟲 - Selenium(8)frame/iframe表單嵌套頁(yè)面 詳細(xì)介紹如何從當(dāng)前定位的主體切換為frame/iframe表單的內(nèi)嵌頁(yè)面中
Python爬蟲 - Selenium(9)警告框(彈窗)處理 詳細(xì)介紹如何定位并處理多類警告彈窗
Python爬蟲 - Selenium(10)下拉框處理 詳細(xì)介紹如何靈活的定位并處理下拉框
Python爬蟲 - Selenium(11)文件上傳 詳細(xì)介紹如何優(yōu)雅的通過send_keys()指定文件進(jìn)行上傳
Python爬蟲 - Selenium(12)獲取登錄Cookies,并添加Cookies自動(dòng)登錄 詳細(xì)介紹如何獲取Cookies和使用Cookies進(jìn)行自動(dòng)登錄
Python爬蟲 - Selenium(13)設(shè)置元素等待 詳細(xì)介紹如何優(yōu)雅的設(shè)置元素等待時(shí)間,防止程序運(yùn)行過快而導(dǎo)致元素定位失敗
Python爬蟲 - Selenium(14)窗口截圖 詳細(xì)介紹如何使用窗口截圖
Python爬蟲 - Selenium(15)關(guān)閉瀏覽器 詳細(xì)介紹兩種關(guān)閉窗口的區(qū)別

到此這篇關(guān)于Python爬蟲之Selenium設(shè)置元素等待的方法的文章就介紹到這了,更多相關(guān)Selenium 元素等待內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中的np.round()函數(shù)示例詳解

    python中的np.round()函數(shù)示例詳解

    np.round()是NumPy庫(kù)中的一個(gè)函數(shù),用于對(duì)數(shù)組或單個(gè)數(shù)值進(jìn)行四舍五入,該函數(shù)返回一個(gè)與輸入類型相同的數(shù)組或數(shù)值,并可以通過可選的參數(shù)來指定保留的小數(shù)位數(shù),這篇文章主要介紹了python中的np.round()函數(shù),需要的朋友可以參考下
    2024-06-06
  • 使用python實(shí)現(xiàn)CGI環(huán)境搭建過程解析

    使用python實(shí)現(xiàn)CGI環(huán)境搭建過程解析

    這篇文章主要介紹了使用python實(shí)現(xiàn)CGI環(huán)境搭建過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Linux環(huán)境下MySQL-python安裝過程分享

    Linux環(huán)境下MySQL-python安裝過程分享

    這篇文章主要介紹了Linux環(huán)境下MySQL-python安裝過程分享,本文使用的編譯方式安裝,需要的朋友可以參考下
    2015-02-02
  • flask框架實(shí)現(xiàn)連接sqlite3數(shù)據(jù)庫(kù)的方法分析

    flask框架實(shí)現(xiàn)連接sqlite3數(shù)據(jù)庫(kù)的方法分析

    這篇文章主要介紹了flask框架實(shí)現(xiàn)連接sqlite3數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式分析了flask框架連接sqlite3數(shù)據(jù)庫(kù)的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-07-07
  • Label?Propagation算法原理示例解析

    Label?Propagation算法原理示例解析

    這篇文章主要為大家介紹了Label?Propagation算法原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Python中self關(guān)鍵字的用法解析

    Python中self關(guān)鍵字的用法解析

    在Python中,self是一個(gè)經(jīng)常出現(xiàn)的關(guān)鍵字,特別是在類定義中的方法,這篇文章主要和大家self的作用和用法,希望可以幫助大家更好地理解為什么需要它以及如何正確使用它
    2023-11-11
  • 使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn)

    使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn)

    這篇文章主要介紹了使用Pandas對(duì)數(shù)據(jù)進(jìn)行篩選和排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python中Collection的使用小技巧

    Python中Collection的使用小技巧

    這篇文章主要介紹了Python中Collection的使用小技巧,對(duì)初學(xué)者來說有不錯(cuò)的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • python實(shí)現(xiàn)定時(shí)器的5種方法

    python實(shí)現(xiàn)定時(shí)器的5種方法

    本文主要介紹了python實(shí)現(xiàn)定時(shí)器的5種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • pypy提升python項(xiàng)目性能使用詳解

    pypy提升python項(xiàng)目性能使用詳解

    這篇文章主要為大家介紹了pypy提升python項(xiàng)目性能使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評(píng)論

长子县| 五家渠市| 雷州市| 宁津县| 抚宁县| 额尔古纳市| 兖州市| 区。| 贵港市| 饶阳县| 乌海市| 渝中区| 江源县| 衡水市| 周口市| 衡水市| 曲沃县| 北海市| 中牟县| 怀集县| 延吉市| 南投市| 临澧县| 纳雍县| 三穗县| 太湖县| 雷波县| 商南县| 包头市| 黔江区| 巴南区| 清徐县| 吴旗县| 沛县| 桦南县| 武清区| 中阳县| 黔西县| 肇州县| 新昌县| 班戈县|