В ходе теста нужно проверить что элемент отсутствует на странице.
Как я поняла нельзя использовать конструкцию вида:
if (driver.findElement(By.xpath("someXpath")).isDisplayed == false)
как можно решить сию проблему?
Отправлено 16 мая 2014 - 09:28
В ходе теста нужно проверить что элемент отсутствует на странице.
Как я поняла нельзя использовать конструкцию вида:
if (driver.findElement(By.xpath("someXpath")).isDisplayed == false)
как можно решить сию проблему?
Отправлено 16 мая 2014 - 09:43
if (driver.findElements(By.xpath("someXpath")).size() == 0) { ... } // или if (driver.findElements(By.xpath("someXpath")).isEmpty()) { ... }Кстати, в условном операторе IF булевские переменные не обязательно приравнивать к значению.
//Например, вместо условия if (a == true) { ... } // можно написать: if (a) { ... } // то же самое для false if (a == false) { ... } // равносильно этому: if (!a) { ... }
Отправлено 16 мая 2014 - 09:51
можно создать метод для этого
public boolean isElementPresent(By by) { try { driver.findElement(by); return true; } catch (NoSuchElementException e) { return false; } }
Отправлено 16 мая 2014 - 10:12
if (driver.findElements(By.xpath("someXpath")).size == 0)
Отправлено 16 мая 2014 - 11:15
Ага. И будет тест тупить-ждать пока не истечёт время IMPLICITLY_WAIT.можно создать метод для этого
public boolean isElementPresent(By by) { try { driver.findElement(by); return true; } catch (NoSuchElementException e) { return false; } }
Отправлено 16 мая 2014 - 13:00
Справедливости ради должен заметить, что метод findElements тоже будет ждать, пока не истечёт время имплицитного ожидания.
Отправлено 19 мая 2014 - 06:33
решила проблему таким способом:
public boolean elementIsNotPresent(String xpath){
return driver.findElements(By.xpath(xpath)).isEmpty();
}
спасибо за ответы :)
Отправлено 19 мая 2014 - 07:09
Даже Selenide не избавит вас от имплицитных ожиданий, если они включены :)
Отправлено 29 мая 2014 - 07:04
Добрый день.
Так как в итоге сделать чтоб скрипт не ждал, а делал эту проверку несколько секунд.
Вопрос стоит остро, т.к. хочется проверять отсутствие большинства элементов на странице.
Отправлено 29 мая 2014 - 07:51
Добрый день.
Так как в итоге сделать чтоб скрипт не ждал, а делал эту проверку несколько секунд.
Вопрос стоит остро, т.к. хочется проверять отсутствие большинства элементов на странице.
return notExists;
Отправлено 26 июня 2014 - 04:45
Ребята, у меня похожая задача. Как можно организовать проверку присутствия элемента на странице в Selenium IDE? Нужно при его отсутствии вызывать Alert с определённым сообщением.
Отправлено 26 июня 2014 - 09:41
Не постите несвязанные вопросы в старые темы, создавайте новые!
Отправлено 10 июля 2014 - 14:01
В ходе теста нужно проверить что элемент отсутствует на странице.
Как я поняла нельзя использовать конструкцию вида:
if (driver.findElement(By.xpath("someXpath")).isDisplayed == false)
как можно решить сию проблему?
Т.е. он может быть на странице, но быть невидимым? Или вообще отсутствует?
Отправлено 05 марта 2020 - 06:22
Ребят, в этом видео описаны 4 СПОСОБА как проверить, что веб элемент на странице отсутствует, причём некоторые из этих способов НЕ ИСПОЛЬЗУЮТ ТАЙМЕР, и за счёт этого проверка не будет проходить секунд 20-30 Вот видео, всем советую посмотреть : https://www.youtube....h?v=EoRHq5mhxxQ
0 пользователей, 0 гостей, 0 анонимных