selenium頁面元素等待問題

2021-06-16 18:20:58 字數 578 閱讀 8466

頁面元素等待問題

有遇到過自動化的case不穩定的情況嗎?有時候通過,有時候不通過。一些自動化框架為了應對這種case,甚至開發出來fail自動重run幾次的功能。作為自動化框架,實現該功能是不錯的,但是作為寫自動化case的工程師,應該盡量寫出穩定的自動化case。

對於webui的自動化而言,一種常見的不穩定是頁面上的元素載入時間不定,特別是在ajax,事件驅動,或者js延遲載入等情況下,頁面元素出現 的時間短的幾毫秒,長的幾秒鐘。這對於讀取頁面元素就帶來了一些麻煩。等得時間過短,導致fail;等得時間過長,又可能白白占用/浪費case的執行時 間。

幸運的是,webdriver提供了一些解決方案。請參考這篇文件:

可以自己封裝乙個smart一點的findelement方法,示例如下:

public static webelement smartfindelement(webdriver driver, by locator) 

private static function presenceofelementlocated(final by locator)

};}

Selenium 元素等待

這是乙個在寫自動化指令碼時經常遇到的問題。試想這樣的乙個場景,通過指令碼開啟乙個網頁,可是由於網路的問題頁面並沒有及時載入進來,這時候如果已經執行到之後查詢元素的 那麼勢必會丟擲錯誤找不到相應元素,而事實並非如此。如果沒有合適的元素等待處理,這樣的測試 不僅不夠健壯,過多的誤報會消耗測試人員大量的精...

Selenium元素等待

一 為什麼要使用元素等待?原因 由於電腦配置或者網路原因,在查詢元素時,元素 未在第一時間內被載入出來,而丟擲未能找到元素的異常。二 什麼是元素等待?元素在第一次未找到時,元素等待設定的時長被啟用,如果在設定的有效時長內找到元素,繼續執行 如果超出設定的時長未找到元素,丟擲未找到元素異常。三 元素等...

Selenium中元素載入和等待

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