Selenium學習(5) 元素等待

2022-05-18 03:29:32 字數 1867 閱讀 7379

概念:

顯示等待是針對某乙個元素進行相關等待判定;

隱式等待不針對某乙個元素進行等待,全域性元素等待。

webdriverwait 顯示等待針對元素必用

expected conditions 預期條件類(裡面包含方法可以呼叫,用於顯示等待)

nosuchelementexception 用於隱式等待丟擲異常

by 用於元素定位

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

from selenium.common.exceptions import nosuchelementexception

示例:-- 顯示等待

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

from time import sleep

driver = webdriver.chrome()

driver.get("")

driver.maximize_window()

sleep(2)

driver.find_element_by_css_selector("#kw").send_keys("test1")

sleep(2)

# 顯示等待 --檢測搜尋按鈕是否存在

# (driver,5,1) 最長等待5秒,每隔0.5秒檢測一次

# presence_of_element_located 顯示定位元素

element = webdriverwait(driver,5,0.5).until(ec.presence_of_element_located((by.id,"su")))

element.click()

sleep(2)

driver.quit()

-- 隱式等待

from selenium import webdriver

from selenium.common.exceptions import nosuchelementexception

# ctime 獲取當前時間

from time import sleep,ctime

driver = webdriver.chrome()

driver.get("")

driver.maximize_window()

sleep(2)

# 等待5秒

driver.implicitly_wait(5)

try:

print(ctime())

driver.find_element_by_css_selector("#kw").send_keys("test1")

driver.find_element_by_css_selector("#su").click()

except nosuchelementexception as msg:

print(msg)

finally:

print(ctime())

sleep(2)

driver.quit()

(selenium系列之七)元素等待

當瀏覽器載入頁面時,頁面上的元素可能不能同時被載入完成,如果在載入某個元素時延遲可能造成elementnotvisibleexception.針對這種情況可以設定元素等待改善指令碼執行的穩定性。webdriver 提供了兩種型別的等待 顯示等待 和 隱式等待 time模組也提供等待 time.sle...

selenium自動化測試(七) 元素等待

當瀏覽器在載入頁面時,頁面上的元素並不是同時被載入完的,就給定位增加了困難。webdriver提供了兩種型別的等待 顯式等待和隱式等待 顯式等待使webdriver等待某個條件成立時繼續執行,否則在達到最大時長時丟擲超時異常 timeoutexception webdriverwait類是由webd...

09 元素等待機制

隱式等待相當於在webdriver級別的顯式等待 因為隱式等待一旦找到就會返回結果,而返回結果到指令碼,再接收到下一條操作剛才找到的元素的命令需要一段時間。這段時間可能頁面已經因為載入後續內容而發生了變化,之前找到的元素也受到了影響,於是操作元素的命令就無法正常執行了。因為隱式等待只要能定位到元素就...