09 元素等待機制

2022-07-10 01:45:09 字數 641 閱讀 1282

隱式等待相當於在webdriver級別的顯式等待

因為隱式等待一旦找到就會返回結果,而返回結果到指令碼,再接收到下一條操作剛才找到的元素的命令需要一段時間。這段時間可能頁面已經因為載入後續內容而發生了變化,之前找到的元素也受到了影響,於是操作元素的命令就無法正常執行了。

因為隱式等待只要能定位到元素就會返回,並不能對元素的各種狀態進行判斷,所以顯式等待中豐富的元素屬性判斷就為有特殊定位需求的情況提供了解決方案。

通常的建議當需要等待時盡量使用顯式等待,如果需要隱式等待的話區域性使用區域性設定,使用完畢復位。不是很推薦隱式等待和顯式等待混合使用

隱式等待解決的是找控制項的問題,但是等待控制項消失這個就乏力了,不是做不到,而是做起來非常麻煩,所以顯式等待機制就需要了。要等待的條件可以非常豐富,不再侷限於簡單的查詢。

假設有個控制項等待60s才能找到,如果用隱式等待那麼其他用例也會在找不到控制項的時候進行60s等待,總體用例時間會增加很多的。這也是要針對性的使用顯式等待的原因。

理論上點選乙個控制項之前需要等待可點選的,這個需要自己封裝,會讓執行更穩定的。最新版本的課程裡,我們就是這樣教的。有些場景下,就算可點選也是點選了沒有效果的,需要用到迴圈點選顯式等待下個控制項出現這種技巧。所以我多次提到做自動化,如果直接用原生api而不是自己封裝框架,那麼穩定性是很差的。

以上參考:

WebDriver元素等待機制

能否構建健壯和可靠的測試是ui自動化測試能否成功的關鍵因素之一。但實際情況是當乙個測試接著乙個測試執行的時候,常會遇到各種不同的狀況。比如指令碼去定位元素或去驗證程式的執行狀態時,有時會發現找不到元素,這可能是由於突然的資源受限或網路延遲等引起響應速度太慢所導致,這時會返回測試失敗的結果。so我們需...

selenium等待機制

因為你要查詢的標籤由於網速等原因遲遲沒有載入出來,你就直接獲取這個標籤,很明顯是報錯,現有的簡單粗暴的解決辦法就是time.sleep 3 睡幾秒,也就是設定執行緒等待,等這個標籤載入出來之後,再去使用。這麼著雖然簡單,但是相對死板,因為我們不知道這個標籤什麼時候載入出來,就大概寫死睡個幾秒,這可以...

Selenium學習(5) 元素等待

概念 顯示等待是針對某乙個元素進行相關等待判定 隱式等待不針對某乙個元素進行等待,全域性元素等待。webdriverwait 顯示等待針對元素必用 expected conditions 預期條件類 裡面包含方法可以呼叫,用於顯示等待 nosuchelementexception 用於隱式等待丟擲異...