Selenium IDE 中的 Java Junit 导出器默认设置 30 秒隐式等待。这意味着,测试元素的断言不存在将导致不必要的延迟 30 秒。
我曾尝试使用WebDriverWait
超时时间为 1 的显式等待(类),但仍然需要大约 30 秒。
那么有没有绕过隐式等待各种定位器(即By
类)?
Selenium IDE 中的 Java Junit 导出器默认设置 30 秒隐式等待。这意味着,测试元素的断言不存在将导致不必要的延迟 30 秒。
我曾尝试使用WebDriverWait
超时时间为 1 的显式等待(类),但仍然需要大约 30 秒。
那么有没有绕过隐式等待各种定位器(即By
类)?
如果您使用显式等待,则取消设置隐式等待:
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
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?