无需在Selenium等待即可快速断言元素不存在

时间:2012-11-16 00:15:36

标签: java selenium selenium-webdriver

Selenium IDE中的Java Junit导出器默认设置为30秒implicit wait。这意味着,测试元素的断言不存在将导致不必要的延迟30秒。

我尝试使用显式等待(WebDriverWait类),超时为1,但仍然需要大约30秒。

那么无论如何都要绕过各种定位器的隐式等待(即By类)?

2 个答案:

答案 0 :(得分:2)

如果使用显式的,则取消设置隐式等待:

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

答案 1 :(得分:0)

boolean isElementPresent(By by) {
    try {
        driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
        driver.findElement(by);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        return true;
    }
    catch(Exception e){
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        return false;
    }
}

恶心但有效。似乎每个隐式等待的命令都应该能够重载。但是find元素没有2个param版本。也许是在By?