Selenium的WebDriverWait研究

在運行automation時候,經常會遇到的問題是,頁面的元素加載需要時間,而這個時間是不確定的,但是你的執(zhí)行是一直在一步步往下走,如果實際頁面等待時間過長導致某個dom元素還沒出來,但是你的代碼直接使用了這個WebElement,那么就會拋出NullPointer的異常。

云南ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

為了解決這種問題,尤其是RemoteWebDriver(不確定因素更多的情況) ,我們就需要用很高級的WebDriverWait的功能。

簡而言之,這個WebDriverWait就是等待到某個條件的滿足之下然后再繼續(xù)往下走。

貼上樣例代碼:

WebDriverWait wait =
        new WebDriverWait(getWebDriver(), 3);
              wait.until(new ExpectedCondition<Boolean>() {
                    public Boolean apply(WebDriver webDriver) {
                                                                           return !justification.getAttribute("class").contains("x-form-invalid-field");
                     }
         });

這段代碼是干什么呢,它是說,默認讓webDriver最多等3秒,直到頁面上叫justification的WebElement元素的樣式不包含x-form-invalid-field.

分析:

這是什么意思呢?很簡單,因為我們的頁面上每個字段都加了js表單驗證,如果這個頁面上的元素輸入錯誤,就會有一個紅色的框框提示用戶非法輸入,這個紅色框框的樣式就是x-form-invalid-field,所以我們的作用就是等這個紅色的框框消失,然后再進行下一步的操作。

如下圖:

因為這個justification的WebElement是強制用戶輸入的,如果用戶不輸入,就有個紅色框框:

Selenium的 WebDriverWait 研究

然后這個紅色的框框的樣式包含x-form-invalid-field,如下圖:

Selenium的 WebDriverWait 研究

所以現(xiàn)在十分清楚了,我們的目的就是在運行automation testcase時候讓這個紅色框框消失。

網頁名稱:Selenium的WebDriverWait研究
瀏覽地址:http://muchs.cn/article32/jpdspc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、靜態(tài)網站做網站、虛擬主機動態(tài)網站、手機網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網站網頁設計