Selenium IDE中的Java Junit导出器默认设置为30秒implicit wait。这意味着,测试元素的断言不存在将导致不必要的延迟30秒。
我尝试使用显式等待(WebDriverWait
类),超时为1,但仍然需要大约30秒。
那么无论如何都要绕过各种定位器的隐式等待(即By
类)?
答案 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?