(selenium系列之七)元素等待

2021-08-23 12:04:14 字數 1972 閱讀 6963

當瀏覽器載入頁面時,頁面上的元素可能不能同時被載入完成,如果在載入某個元素時延遲可能造成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 用於隱式等待丟擲異...