selenium中等待元素的加载

在实际使用中,有时会出现一个元素还没有加载出来,导致无法获取,此时需要selenium处理来等待一段时间,此时处理方法有以下几种:

1、最笨、最简单但是最不推荐的方式:

  Thread.sleep(times);

2、采用 WebDriverWait类+ExpectedConditions接口,具体用法例子:    WebDriverWait wait = new WebDriverWait(driver,10);
         WebElement e1 = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id='site_nav_md']/ul/li[3]/a[1]/span")));

  含义:表示默认等待1-10s, 10内,若ExpectedConditions找到元素立刻返回,超过是10s报超时。

3、隐形等待

  WebDriver driver=new FirefoxDriver();

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

  说明:
    执行driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);后

    当要查找元素,而这个元素没有马上出现时,会告诉WebDriver查询Dom一定时间(设置了10s)。默认值是0, 设置之后,这个时间将在WebDriver对象实例整个生命周期都起作用

 

 

posted @ 2014-12-22 16:54  小羊的技术家  阅读(725)  评论(0编辑  收藏  举报