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

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

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 }
示例代码

posted on 2015-01-05 18:50  MissPersist  阅读(1548)  评论(0编辑  收藏  举报