概念:
顯示等待是針對某乙個元素進行相關等待判定;
隱式等待不針對某乙個元素進行等待,全域性元素等待。
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級別的顯式等待 因為隱式等待一旦找到就會返回結果,而返回結果到指令碼,再接收到下一條操作剛才找到的元素的命令需要一段時間。這段時間可能頁面已經因為載入後續內容而發生了變化,之前找到的元素也受到了影響,於是操作元素的命令就無法正常執行了。因為隱式等待只要能定位到元素就...