提问人:golu 提问时间:10/24/2023 最后编辑:golu 更新时间:10/24/2023 访问量:48
使用 WebDriverWait 仅检查直到超时,无一例外
Using WebDriverWait to only check till timeout, without exception
问:
我正在尝试使用 WebDriverWait 让条件为真。如果超时后不成立,请继续 - 而不是超时异常。
new WebDriverWait(driver, 10)
.pollingEvery(Duration.ofSeconds(1))
.until(wd -> isElementPresent());
return isElementPresent()
基本上,这个元素可以在几秒钟的延迟后出现,并且不能保证在那里。
- 如果元素存在,则立即返回 true
- 如果元素不存在,请等待最多 10 秒,然后返回 false
我可以用 WebDriverWait 实现这一点吗?
答:
0赞
kenneth
10/24/2023
#1
你试过使用这种方法吗?.ignoring
new WebDriverWait(driver, 10)
.pollingEvery(Duration.ofSeconds(1))
.ignoring(TimeoutException.class)
.until(wd -> isElementPresent());
return isElementPresent()
否则,您应该尝试该方法,该方法允许更大的灵活性:try-catch
try {
WebDriverWait wait = new WebDriverWait(driver, 10); // Wait for up to 10 seconds
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("yourElementId")));
// Perform actions on the element
} catch (TimeoutException e) {
// Handle the TimeoutException (e.g., log an error, take a screenshot, or report the issue)
System.out.println("TimeoutException occurred: Element was not found within the specified timeout.");
}
评论