selenium中元素的三大等待應用

2021-10-03 23:28:03 字數 771 閱讀 2137

強制等待

一般在除錯指令碼時會執行,在正式的指令碼中是不會加強制等待的,會導致執行時間增長,效率過低

import time

time.sleep(4)

# 4代表等待時間,單位為秒

隱式等待

隱式等待為全域性,只需設定一次,這設定的等待時間不是固定,不影響指令碼執行的速度,以輪詢的方式判斷元素是否存在,存在繼續執行下乙個操作,不存在會一直等待到設定的時間,若超過設定時間還沒載入出來,會報沒有找到元素:nosuchelementexception異常

driver.implicitly_wait(10)

# 10代表等待時間,單位為秒

顯示等待

顯示等待只對某個元素進行等待,而非全域性,顯示等待有兩個方法,一起使用,分別是until和not until,預設輪詢時間是0.5秒,可以自己定義

from selenium.webdrivr.support.ui import wendriverwait

webdriverwait(driver,等待時間)

.until(判斷條件)

webdriverwait(driver,10)

.until(el:driver.find_element_by_id(

'***'

)#也可以結合expected_conditions使用

Selenium中元素載入和等待

本來實現了退出功能的,但是想把自動化寫得功能完善點。我加了個方法,給個等待時間,判斷元素是否存在。結果悲劇了。函式執行有問題,把能跑過的case,給整失敗了。元素沒有獲取到。我只得退回原來的情況,把退出重新寫起來。結果也失敗了。然後debug,debug能過,把載入時間延長。結果有的時候能過,有的時...

selenium(三) 查詢元素

一 查詢元素的方法 1,根據元素的id查詢 find element by id id 通過元素的id查詢,username就指向了該元素。2,通過元素的name查詢 find element by name name 通過元素的name查詢,password就指向了該元素。3,通過元素的xpath...

selenium 三大等待方式

一 強制等待 time.sleep 硬性等待,可以放在任意地方,等待時間為設定的時長,本質是暫停 執行,每需要用到一次,就要設定一次。二 隱性等待 implicitly wait 啟動瀏覽器後只需要設定一次,只能用於等待元素出現,等待的最長時間為設定的時長,一旦等待的元素出現,即停止等待。三 顯性等...