在運行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是強制用戶輸入的,如果用戶不輸入,就有個紅色框框:
然后這個紅色的框框的樣式包含x-form-invalid-field,如下圖:
所以現(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)