t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как сделать Assert, что элемент не присутствует на странице. Selenium WebDriver + Java

Теги: #<Tag:0x00007f7487084410> #<Tag:0x00007f74870842f8> #<Tag:0x00007f74870841e0>

Как сделать Assert, что элемент не присутствует на странице?
Вот как сделал я:
public boolean AssertDetailNotPresent() {
try {
driver.findElement(linkDetail);
} catch (NoSuchElementException e) {
return true;
}
return false;
}
при этом если элемент присутствует мне нужно, чтобы тест не проходил. А у меня если элемент присутствует сейчас, то тест проходит.

Подключаете selenide и просто

$(element).shouldNotBe(visible);

assert.true(driver.findElements(linkDetail)==0)

1 Симпатия

преобразовал ваше в
public boolean AssertDetailNotPresent(){
if (driver.findElements(linkDetail).size()==0) return true;
else return false;
}
но все равно, если элемент присутствует на странице тест проходит(

public boolean AssertDetailNotPresent(){
return driver.findElements(linkDetail).size()==0;
}

Может у вас в самом тесте что-то не так?
Или в linkDetail стоит неправильный локатор.

спасибо! Уже удалось сделать Assert при помощи:
Assert.assertFalse(driver.findElement(By.xpath("//a[text()=‘Detail’]")).isDisplayed());

Элемент “сразу не присутствует на странице”, или он вначале имеется, а потом исчезает/становится невидимым?