強制等待
一般在除錯指令碼時會執行,在正式的指令碼中是不會加強制等待的,會導致執行時間增長,效率過低
隱式等待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 啟動瀏覽器後只需要設定一次,只能用於等待元素出現,等待的最長時間為設定的時長,一旦等待的元素出現,即停止等待。三 顯性等...