Selenium_等待页面加载完毕
隱式等待
WebDriver driver = new FirefoxDriver();driver.get("www.baidu.com"); driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);WebElement element = driver.findElement(By.cssSelector(".abc")); ((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element);注:隱式等待設(shè)置的內(nèi)容在driver的整個(gè)生命周期都有效,所以實(shí)際使用過程當(dāng)中有弊端。
等待20秒元素還不存在,就會(huì)拋出異常 ?org.openqa.selenium.NoSuchElementException
顯式等待
顯式等待 使用ExpectedConditions類中自帶方法, 可以進(jìn)行顯試等待的判斷。?
顯式等待可以自定義等待的條件,用于更加復(fù)雜的頁面等待條件
| 等待的條件 | WebDriver方法 |
| 頁面元素是否在頁面上可用和可被單擊 | elementToBeClickable(By locator) |
| 頁面元素處于被選中狀態(tài) | elementToBeSelected(WebElement element) |
| 頁面元素在頁面中存在 | presenceOfElementLocated(By locator) |
| 在頁面元素中是否包含特定的文本 | textToBePresentInElement(By locator) |
| 頁面元素值 | textToBePresentInElementValue(By locator, java.lang.String text) |
| 標(biāo)題 (title) | titleContains(java.lang.String title) |
只有滿足顯式等待的條件滿足,測(cè)試代碼才會(huì)繼續(xù)向后執(zhí)行后續(xù)的測(cè)試邏輯
如果超過設(shè)定的最大顯式等待時(shí)間閾值, 這測(cè)試程序會(huì)拋出異常。
public static void testWait2(WebDriver driver){driver.get("www.baidu.com"); WebDriverWait wait = new WebDriverWait(driver, 20);wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".abc")));WebElement element = driver.findElement(By.cssSelector(".abc")); ((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element); }總結(jié)
以上是生活随笔為你收集整理的Selenium_等待页面加载完毕的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年糕胖是什么?
- 下一篇: 关于element click inte