當瀏覽器載入頁面時,頁面上的元素可能不能同時被載入完成,如果在載入某個元素時延遲可能造成elementnotvisibleexception.針對這種情況可以設定元素等待改善指令碼執行的穩定性。
webdriver 提供了兩種型別的等待:顯示等待 和 隱式等待
time模組也提供等待:time.sleep(10) 強制等待10秒
顯示等待:顯示等待使webdriver等待某個條件成立時繼續執行,否則在達到最大時長時丟擲超時異常(timeoutexception)
#coding=utf-8
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
driver = webdriver.chrome()
driver.get("")
# 顯式等待 webdriverwait(driver,5,0.5) 每隔0.5秒重新整理一次,如果5秒內能定位到這個元素,則通過,否則丟擲nosuchelementexception
element = webdriverwait(driver,5,0.5).until(ec.presence_of_element_located((by.id,'kw')))
element.send_keys('selenium')
driver.quit()
隱式等待:通過一定的時長等待頁面上某元素載入完成,如果超出設定時長仍沒載入出來,則丟擲nosuchelementexception
webdriver 提供了 implicitly_wait()實現隱式等待
#coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import nosuchelementexception
from time import ctime
driver = webdriver.chrome()
# 隱式等待設定為10秒,如果等2秒就能載入出來則直接進行下面操作
driver.implicitly_wait(10)
driver.get("")
try:
print(ctime())
driver.find_element_by_id('kw22').send_keys('selenium')
except nosuchelementexception as e:
print(e)
finally:
print(ctime())
driver.quit()
強制等待:
#coding=utf-8
from selenium import webdriver
from selenium.common.exceptions import nosuchelementexception
import time
driver = webdriver.chrome()
driver.get("")
try:
print(time.ctime())
#強制等待3秒
time.sleep(3)
driver.find_element_by_id('kw22').send_keys('selenium')
except nosuchelementexception as e:
print(e)
finally:
print(time.ctime())
driver.quit()
selenium自動化測試(七) 元素等待
當瀏覽器在載入頁面時,頁面上的元素並不是同時被載入完的,就給定位增加了困難。webdriver提供了兩種型別的等待 顯式等待和隱式等待 顯式等待使webdriver等待某個條件成立時繼續執行,否則在達到最大時長時丟擲超時異常 timeoutexception webdriverwait類是由webd...
CSS入門基礎知識(七) 元素顯示模式
元素顯示模式就是元素 標籤 以什麼方式進行顯示,比如 div 自己獨佔一行,比如一行可以放多個 span html元素一般分為塊元素和行元素 常見的塊元素有 h1 h6 p div 等等,其中 div 標籤是最典型的塊元素 1 自己獨佔一行 2 高度 寬度 內外邊距邊距都可以控制 3 寬度預設是容器...
Selenium學習(5) 元素等待
概念 顯示等待是針對某乙個元素進行相關等待判定 隱式等待不針對某乙個元素進行等待,全域性元素等待。webdriverwait 顯示等待針對元素必用 expected conditions 預期條件類 裡面包含方法可以呼叫,用於顯示等待 nosuchelementexception 用於隱式等待丟擲異...