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

Python Selenium中等待設置的實現(xiàn)

 更新時間:2023年12月22日 15:07:37   作者:Rocky006  
本文主要介紹了Python Selenium中等待設置的實現(xiàn),過詳實的示例代碼,深入介紹了顯式等待、隱式等待、自定義等待條件、多重等待條件、頁面加載狀態(tài)的等待、元素存在與可見性等待、Fluent等待以及異步JavaScript加載的等待,感興趣的可以了解一下

概要

在Web自動化測試中,等待是至關重要的一環(huán),而Selenium提供了豐富的等待設置來確保測試腳本的可靠性和穩(wěn)定性。本文將深入研究Python Selenium中常用的必備等待設置,包括顯式等待、隱式等待、自定義等待條件等多個方面。通過詳實的示例代碼,將為大家提供全面而深入的學習體驗。

顯式等待

顯式等待是在特定條件下等待某個元素的出現(xiàn)或者消失。以下是一個等待元素可點擊的示例:

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

# 顯式等待
element = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, 'example_id'))
)

element.click()

隱式等待

隱式等待是在整個會話中等待元素出現(xiàn)的最長時間。設置一次即可,全局生效:

from selenium import webdriver

# 隱式等待
driver = webdriver.Chrome()
driver.implicitly_wait(10)

driver.get('https://example.com')
element = driver.find_element(By.ID, 'example_id')

自定義等待條件

有時候我們需要根據(jù)自定義的條件等待,可以使用expected_conditions中的expected_conditions類:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 自定義等待條件
class ElementHasText:
    def __init__(self, locator, text_):
        self.locator = locator
        self.text = text_

    def __call__(self, driver):
        element_text = EC._find_element(driver, self.locator).text
        return self.text in element_text

element_locator = (By.ID, 'example_id')
wait = WebDriverWait(driver, 10)
wait.until(ElementHasText(element_locator, 'Expected Text'))

多重等待條件

有時我們需要等待多個條件同時滿足,可以使用expected_conditions中的and_or_

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 多重等待條件
element_locator = (By.ID, 'example_id')
wait = WebDriverWait(driver, 10)
wait.until(EC.and_(
    EC.element_to_be_clickable(element_locator),
    EC.visibility_of_element_located(element_locator)
))

頁面加載狀態(tài)的等待

在Web自動化測試中,頁面的加載狀態(tài)是一個關鍵考量因素。Selenium提供了expected_conditions中的document_to_be_ready_state來等待頁面加載完成:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 頁面加載狀態(tài)的等待
wait = WebDriverWait(driver, 10)
wait.until(EC.document_to_be_ready_state('complete'))

元素存在與可見性等待

除了常規(guī)的元素等待,有時還需要等待元素的出現(xiàn)或者可見性。以下是一個等待元素存在并可見的示例:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 元素存在與可見性等待
element_locator = (By.ID, 'example_id')
wait = WebDriverWait(driver, 10)
element = wait.until(EC.visibility_of_element_located(element_locator))

Fluent等待

Fluent等待允許在等待期間設置輪詢條件,增加了等待的靈活性。以下是一個Fluent等待的示例:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import FluentWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

# Fluent等待
wait = WebDriverWait(driver, 10)
element = FluentWait(driver, timeout=10, poll_frequency=1, ignored_exceptions=[TimeoutException]) \
    .until(lambda x: x.find_element(By.ID, 'example_id'))

異步JavaScript加載的等待

對于異步JavaScript加載的元素,可以使用expected_conditions中的invisibility_of_element_located來等待其加載完成:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 異步JavaScript加載的等待
element_locator = (By.ID, 'async_element')
wait = WebDriverWait(driver, 10)
wait.until(EC.invisibility_of_element_located(element_locator))

總結

在本篇文章中,全面深入地探討了Python Selenium中常用的必備等待設置,旨在為Web自動化測試提供更為全面和深入的學習體驗。通過詳實的示例代碼,深入介紹了顯式等待、隱式等待、自定義等待條件、多重等待條件、頁面加載狀態(tài)的等待、元素存在與可見性等待、Fluent等待以及異步JavaScript加載的等待。這些等待設置不僅僅是簡單的時間延遲,更是在確保腳本執(zhí)行的可靠性和穩(wěn)定性方面的必備工具。

通過顯式等待,能夠精確等待某個特定條件的出現(xiàn)或消失,提高了腳本的精準性。隱式等待為整個會話提供了最長等待時間,全局有效,確保了在查找元素時的超時容忍度。自定義等待條件和多重等待條件則進一步增強了等待的靈活性,適應了更多復雜的測試場景。還深入研究了頁面加載狀態(tài)的等待,元素存在與可見性等待,F(xiàn)luent等待以及異步JavaScript加載的等待,涵蓋了更廣泛的測試需求。這些等待設置的巧妙應用,可以在處理異步加載、提高頁面加載的穩(wěn)定性等方面展現(xiàn)出強大的效果。

到此這篇關于Python Selenium中等待設置的實現(xiàn)的文章就介紹到這了,更多相關Python Selenium等待設置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python使用爬蟲爬取貴陽房價的方法詳解

    Python使用爬蟲爬取貴陽房價的方法詳解

    這篇文章主要為大家詳細介紹了Python爬蟲爬取貴陽房價的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Django-imagekit的使用詳解

    Django-imagekit的使用詳解

    ImageKit是一個用于處理圖像的Django應用程序。這篇文章主要介紹了Django-imagekit的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 利用Python自動化實現(xiàn)Excel單元格數(shù)據(jù)驗證

    利用Python自動化實現(xiàn)Excel單元格數(shù)據(jù)驗證

    在當今數(shù)據(jù)驅動的世界里,Excel作為最常用的數(shù)據(jù)處理工具之一,其數(shù)據(jù)質量直接影響著決策的準確性,本文將深入探討如何利用 Spire.XLS for Python 庫,在Excel中設置各種復雜的數(shù)據(jù)驗證規(guī)則,需要的小伙伴可以了解下
    2025-09-09
  • 基于PyQt5制作一個數(shù)據(jù)圖表生成器

    基于PyQt5制作一個數(shù)據(jù)圖表生成器

    這篇文章主要介紹了如何利用PyQT5制作一個數(shù)據(jù)圖表生成器,可以通過Pyecharts模塊生成可視化的html數(shù)據(jù)圖表,感興趣的小伙伴可以跟隨小編學習一下
    2022-02-02
  • python在協(xié)程中增加任務實例操作

    python在協(xié)程中增加任務實例操作

    在本篇文章里小編給大家整理的是一篇關于python在協(xié)程中增加任務實例操作內容,有興趣的朋友們可以學習下。
    2021-02-02
  • Python實現(xiàn)快速將Word文檔轉換為PDF的完整教程

    Python實現(xiàn)快速將Word文檔轉換為PDF的完整教程

    在文檔管理和分發(fā)場景中,將 Word 文檔轉換為 PDF 是一項基礎且關鍵的操作,本文將深入探討如何使用 Python 將 Word 文檔高效地轉換為 PDF 格式,并控制轉換過程中的各項參數(shù),希望對大家有所幫助
    2026-03-03
  • Python imutils 填充圖片周邊為黑色的實現(xiàn)

    Python imutils 填充圖片周邊為黑色的實現(xiàn)

    今天小編就為大家分享一篇Python imutils 填充圖片周邊為黑色的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python rsa-oaep加密的示例代碼

    python rsa-oaep加密的示例代碼

    這篇文章主要介紹了python rsa-oaep加密示例的示例代碼,幫助大家更好的利用python加解密,感興趣的朋友可以了解下
    2020-09-09
  • python datetime中strptime用法詳解

    python datetime中strptime用法詳解

    這篇文章主要介紹了python 中datetime中strptime用法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    這篇文章主要介紹了Python創(chuàng)建普通菜單,結合實例形式分析了Python基于win32ui模塊創(chuàng)建普通菜單及添加菜單項的相關操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下
    2018-05-05

最新評論

新竹市| 万安县| 达孜县| 剑阁县| 乌兰浩特市| 丹寨县| 莱芜市| 射阳县| 鱼台县| 竹溪县| 恩施市| 肇东市| 瑞金市| 石嘴山市| 寻乌县| 宁乡县| 岐山县| 汉阴县| 桦川县| 荆州市| 固安县| 申扎县| 高清| 逊克县| 平安县| 襄垣县| 普定县| 贵溪市| 铁岭市| 加查县| 新巴尔虎左旗| 鸡西市| 武夷山市| 伊通| 河间市| 兴国县| 枞阳县| 南陵县| 潜山县| 芦溪县| 彩票|