Утверждение, что элемент не отображается, выбрасывает и исключение, которое не перехватывается в блоке вызывающего абонента
Я использую эту функцию из webdriverextensions для проверки того, что элемент не отображается assertIsNotDisplayed(driver().findElement ....)
Проблема здесь в том, что если метод не находит элемент, генерирует исключение NoSuchElementException, которое игнорирует блок catch.
public static boolean isDisplayed(WebElement webElement) {
try {
return webElement.isDisplayed();
} catch (NoSuchElementException e) {
return false;
}
}
public static void assertIsNotDisplayed(WebElement webElement) {
try {
if (isDisplayed(webElement)) {
throw new WebAssertionError(
"Element is displayed when it shouldn't", webElement);
}
} catch (final NoSuchElementException |
java.util.NoSuchElementException |
org.openqa.selenium.TimeoutException ignore) {}
}
При использовании этого метода в тесте я получаю исключение NoSuchElementException, но ожидал, что блок catch будет работать.
Что мне не хватает при обработке ошибок Java?