Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

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

selenium
webdriver
java
Теги: #<Tag:0x00007f7b61098470> #<Tag:0x00007f7b61098268> #<Tag:0x00007f7b6d713f28>

#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

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