selenium使用等待的几种方式

1.使用java的sleep

        try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

2.使用selenium的WebDriverWait,显示等待

    public void f1() {
dr.get("http://www.baidu.com");
WebDriverWait wait = new WebDriverWait(dr,10);
wait.until(new ExpectedCondition<WebElement>(){ @Override
public WebElement apply(WebDriver arg0) {
// TODO Auto-generated method stub
return arg0.findElement(By.id("kw"));
} }).sendKeys("test"); wait.until(new ExpectedCondition<Boolean>(){ @Override
public Boolean apply(WebDriver arg0) {
// TODO Auto-generated method stub
return arg0.findElement(By.id("2")).isDisplayed();
} });
}

先构造方法,显示等待最多10秒,直到出现下面apply方法(重写)的元素,第一个重写的apply方法返回的元素对象,第二个重写的apply方法返回的Boolean,10秒内出现,则往下运行,10秒后仍不出现,则抛出异常

3.使用selenium的隐式等待,全局

dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

在项目中,感觉第三种方式作用不大,用的最多的就是第一种和第二种,推荐用第二种,智能等待

上一篇:struts2官方 中文教程 系列一:创建一个struts2 web Application


下一篇:URL优化之IIS7如何开启伪静态