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);

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

posted on 2015-08-26 15:33  乔叶叶  阅读(832)  评论(0编辑  收藏  举报

导航