Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

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

java
webdriver
selenium
Теги: #<Tag:0x00007fedc10a8c58> #<Tag:0x00007fedc10a8820> #<Tag:0x00007fedc10a8690>

#1

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


(Fiodar Motin) #2

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

$(element).shouldNotBe(visible);

(Yaroslav Pernerovskyy) #3

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


#4

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


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

(Yaroslav Pernerovskyy) #6

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


#7

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


(Bolatbek) #8

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