2

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

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

那么有没有绕过隐式等待各种定位器(即By类)?

4

2 回答 2

2

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

driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
于 2012-11-16T06:22:52.957 回答
1
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 参数版本。也许它在By?

于 2013-02-26T18:36:07.413 回答