public boolean isElementPresent(final By locator, long seconds) {
Wait wait = new FluentWait(driver)
.withTimeout(Duration.ofSeconds(seconds))
.pollingEvery(Duration.ofMillis(500))
.ignoring(NoSuchElementException.class).ignoring(StaleElementReferenceException.class);
try {
wait.until(ExpectedConditions.presenceOfElementLocated(locator));
return true;
} catch (TimeoutException e) {
Logger.warning("Element '" + locator + "' is not present");
return false;
}
}
使用下面的函数代码:
isElementPresent(someButton, 2)
当没有页面所需的元素时,测试会冻结大约40秒但是应该在我们设置的2秒后抛出TimeOutException。 测试冻结在以下行:
wait.until(ExpectedConditions.presenceOfElementLocated(locator));
有人可以帮忙吗?在将selenium更新到3.11.0之前没关系