顯式等待 隱式等待

2021-09-11 20:48:39 字數 1180 閱讀 7823

現在的網頁越來越多採用了 ajax 技術,這樣程式便不能確定何時某個元素完全載入出來了。如果實際頁面等待時間過長導致某個dom元素還沒出來,但是你的**直接使用了這個webelement,那麼就會丟擲nullpointer的異常。

為了避免這種元素定位困難而且會提高產生 elementnotvisibleexception 的概率。所以 selenium 提供了兩種等待方式,一種是隱式等待,一種是顯式等待。

隱式等待是等待特定的時間,顯式等待是指定某一條件直到這個條件成立時繼續執行。

顯式等待指定某個條件,然後設定最長等待時間。如果在這個時間還沒有找到元素,那麼便會丟擲異常了。

from selenium import webdriver

from selenium.webdriver.common.by import by

# webdriverwait 庫,負責迴圈等待

from selenium.webdriver.support.ui import webdriverwait

# expected_conditions 類,負責條件出發

from selenium.webdriver.support import expected_conditions as ec

driver = webdriver.chrome()

driver.get("")

try:

# 頁面一直迴圈,直到 id="mydynamicelement" 出現

element = webdriverwait(driver, 10).until(

ec.presence_of_element_located((by.id, "mydynamicelement"))

)finally:

driver.quit()

等待時間完成即可(單位:秒)預設等待時間為0

from selenium import webdriver

driver = webdriver.chrome()

driver.implicitly_wait(10) # seconds

driver.get("")

mydynamicelement = driver.find_element_by_id("mydynamicelement")

Selenium強制等待 顯式等待 隱式等待的區別

學習這一章的時候,無法清楚的了解到顯式等待與隱式等待的區別。這一篇講得挺清楚的 為什麼需要設定元素等待?usr bin env python coding utf 8 title time 2020 3 25 17 52 author 小菠蘿測試筆記 blog from time import sl...

selenium自學之路 顯式等待,隱式等待

顯示等待 使webdriver等待某個條件成立時繼續執行,否則在達到最大時長時拋棄超時異常 from selenium import webdriver from selenium.webdriver.common.by import by from selenium.webdriver.suppo...

三種等待方式 強制等待 顯式等待 隱式等待

我們在使用selenium的時候,會遇到一種定位不到的情況,因為web頁面有乙個載入的過程 當頁面元素未出現時,去定位肯定是定位不到的,所以我們需要用到了 等待 該如何使用等待呢,讓我們一起來 一下吧!time.sleep 強制等待 time模組,是python專門用來處理時間的內建庫。我們可以使用...