首页 > 代码库 > [selenium webdriver Java]显示的等待同步

[selenium webdriver Java]显示的等待同步

显示等待可以在执行下一次操作时,自定义等待条件

显示的等待只需要执行在需要同步的地方而不影响脚本的其他地方

Selenium WebDriver提供了WebDriverWait和ExpectedCondition类来执行显示等待

ExpectedCondition类提供了一系列预定义好的条件来等待。下面是一些常用的条件

预定义条件方法名
元素可见可点击elementToBeClickable(By locator)
元素可被选中elementToBeSelected(WebElement element)
存在一个元素presenceOfElementLocated(By locator)
元素中出现指定的文本textToBePresentInElement(By locator)
元素的值textToBePresentInElementValue(By locator, String text)
标题

titleContains(String title)

WebDriverWait每500毫秒调用一次ExpectedCondition直到得到正确的返回值。这样的好处是随时控制所需呀等待的地方,更加精确的控制等待条件

技术分享
 1 public void testWithImplicitWait(){ 2     System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 3     WebDriver driver = new ChromeDriver(); 4     driver.get("http://map.baidu.com"); 5  6         WebElement curCity = driver.findElement(By.id("curCity")); 7     curCity.click(); 8      9     //设置等待时间10秒10     WebDriverWait wait = new WebDriverWait(driver,10);11     //等待直到符合元素文本内容出现12     wait.until(ExpectedConditions.textToBePresentInElement(By.id("selCityHotCityId"), "全国"));13     14         driver.quit();15 }
示例代码

技术分享

[selenium webdriver Java]显示的等待同步