在我的测试应用程序中,错误和成功的消息将在具有5-10秒超时的元素中可见。只有在出现错误和成功消息时才会显示该元素。它不是弹出式消息。我写了一个方法来在发生故障时截取屏幕截图。但是由于它的超时,屏幕截图中的错误不可见。 如果你能告诉我如何实现一个监听器以捕获error元素的可见性,我将不胜感激。我可以在每个提交命令后编写findelement。但我认为这不实用。
答案 0 :(得分:1)
您甚至可以像这样使用FluentWait -
public Boolean fluentWait(WebDriver driver, final By awaitedElement) {
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
Boolean flag = wait.until(new Function<WebDriver, Boolean>() {
public Boolean apply(WebDriver driver) {
return driver.findElement(locator).isDisplayed();
}
});
return flag;
};
答案 1 :(得分:0)
您可以使用WebDriverWait
之类的
/**
* Method to wait until element is visible
* @param driver WebDriver instance
* @param identifier identifiers used to select element
* @param timeout Timeout duration
* @return Element
*/
public WebElement waitUntilElementIsVisible(By identifier, long timeout) {
WebDriverWait wait = new WebDriverWait(driver, timeout);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(identifier));
return element;
}