Перейти к содержимому

Фотография

Убедиться, что элемент отсутствует


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 hodchenkova

hodchenkova

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 23 сентября 2017 - 06:41

Доброе утро! Я в автоматизации новичок и путаюсь в проверках. Сейчас пишу тесты для одного сайта и возник вопрос, есть пользователь админ и клиент, кнопка "Настройки" для админа видна, а для клиента ее быть не должно, мне нужно написать тест, на случай если слетят права для клиента, который должен пройти успешно, если элемента "Настройки " на странице не будет. Такое возможно вообще или он всегда будет фейлиться?


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 24 сентября 2017 - 09:31

Скорее всего, наоборот, он всегда будет проходить успешно. Так как подобного рода "потери прав" случаются крайне редко. По крайней мере в моем опыте. Если подобные ошибки у вас случались,, то можно автоматизировать. С проверкой отсутствия кнопки "Настройки" по идее особых проблем быть не должно.


  • 0

#3 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 29 сентября 2017 - 12:26

Возможно.

List<WebElement> elements = driver.findElements(By.xpath("//button(text()='Настройки')"));
if (elements.size == 0){
   //do anything
}

  • 0

#4 hodchenkova

hodchenkova

    Новый участник

  • Members
  • Pip
  • 2 сообщений

Отправлено 02 октября 2017 - 07:35

Спасибо за ответы! Решила проблему так:

 public boolean isElementPreset(By selector) {

try {
driver.findElement(selector);
return true;
} catch (Exception e) {
return false;
}
}

 

@Test(priority = 23, dependsOnMethods = {"ClientLogin"})
public void ClientSettings() {
adminPage.Products();
Assert.assertFalse(isElementPreset(By.linkText("Настройки")));
analyzeLog();
}


  • 0

#5 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 02 октября 2017 - 08:05

 

 

adminPage.Products();
Assert.assertFalse(isElementPreset(By.linkText("Настройки")));

обязательно надо рассмотреть вариант как отработает код если элемент "Настройки" появится через 50 миллисекунд после возврата вызова "adminPage.Products();"?

 

конечно тут многое зависит от реализации страницы и самого "adminPage.Products();"


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных