在運行automation時候,經(jīng)常會遇到的問題是,頁面的元素加載需要時間,而這個時間是不確定的,但是你的執(zhí)行是一直在一步步往下走,如果實際頁面等待時間過長導(dǎo)致某個dom元素還沒出來,但是你的代碼直接使用了這個WebElement,那么就會拋出NullPointer的異常。
云南ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,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時候讓這個紅色框框消失。
網(wǎng)頁名稱:Selenium的WebDriverWait研究
瀏覽地址:http://jinyejixie.com/article32/jpdspc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、靜態(tài)網(wǎng)站、做網(wǎng)站、虛擬主機、動態(tài)網(wǎng)站、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)