Selenium:元素等待的4種方法


1.使用Thread.sleep(),這是最笨的方法,但有時候也能用到而且很實用。
2.隱示等待,隱性等待是指當要查找元素,而這個元素沒有馬上出現時,告訴WebDriver查詢Dom一定時間。默認值是0,但是設置之后,這個時間將在WebDriver對象實例整個生命周期都起作用。
WebDriver dr = new FirefoxDriver();           
dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
3.使用javascript 
WebElement element = driver.findElement(By.xpath(test));
((JavascriptExecutor)driver).executeScript("arguments[0].style.border="5px solid yellow"",element);  

 

 

4.顯示等待,推薦使用顯示等待

WebDriverWait wait = new WebDriverWait(dr, 10);

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("kw")));

 

顯式等待 使用ExpectedConditions類中自帶方法, 可以進行顯試等待的判斷。 

顯式等待可以自定義等待的條件,用於更加復雜的頁面等待條件

(1)頁面元素是否在頁面上可用和可被單擊:elementToBeClickable(By locator)

(2)頁面元素處於被選中狀態:elementToBeSelected(WebElement element)

(3)頁面元素在頁面中存在:presenceOfElementLocated(By locator)

(4)在頁面元素中是否包含特定的文本:textToBePresentInElement(By locator)

(5)頁面元素值:textToBePresentInElementValue(By locator, java.lang.String text)

(6)標題 (title):titleContains(java.lang.String title)

只有滿足顯式等待的條件滿足,測試代碼才會繼續向后執行后續的測試邏輯

如果超過設定的最大顯式等待時間閾值, 這測試程序會拋出異常。 

WebDriverWait wait = new WebDriverWait(driver,5); 

wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(""))); 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM