Проверить отсутствие WebElement на странице. Webdriver, Selenium, Java
Нужно проверить, что на странице присутствует/отсутствует webElement.
Тест выполняется при проверке присутствия: Assert.assertTrue(webElement.isDisplayed());
Но, почему-то валится при проверке отсутствия: Assert.assertFalse(webElement.isDisplayed());
Не понимаю почему валится. Выдает ошибку NoSuchElementException
Ответы (1 шт):
Есть разница между "элемент есть на странице, но невидим" и "элемента нет на странице".
isDisplayed проверяет невидимость, элемент при этом должен быть на странице. Если элемента нет вообще (например, при поиске по id или css селектору), по попытка к нему обратиться, как в этом случае узнать видим ли он, приведет к исключению.
Таким образом если вас интересуют и случай когда элемента нет вообще и когда он невидим, то нужно делать как-то так:
boolean isDisplayed(By by) {
try {
return driver.findElement(by).isDisplayed();
} catch (NoSuchElementException e) {
return False;
}
}
Assert.assertTrue(isDisplayed(By.id('some-id')));