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

[Resolved] Как проверить название активной категории (ссылки), Webdriver + Java

Подскажите, пожалуйста, как проверить, что активная вкладка имеет название “Недвижимость”?

        driver.findElement(By.linkText("Недвижимость")).click();
	//Поверяем, что активна 1 категория
	Compare=driver.findElements(By.cssSelector(".b-categories__item--active")).size();
	System.out.println(Compare);
	Assert.assertEquals("", 1, Compare);
driver.findElements(By.cssSelector(".b-categories__item--active")).get(0).getText().equals("Недвижимость");
1 Симпатия

Некорректно работает(
Отрабатывается успешно, даже если введено некорректное название категории

driver.findElement(By.linkText("Недвижимость")).click();
//Поверяем, что активна 1 категория
Compare=driver.findElements(By.cssSelector(".b-categories__item--active")).size();
System.out.println(Compare);
Assert.assertEquals("", 1, Compare);
//Проверяем, что активна именна категория Недвижимость
driver.findElements(By.cssSelector(".b-categories__item.b-categories__item--active")).get(0).getText().equals("**0000000000000000**");

Вот и как часто это встречается - суть вопроса не понятна - какая вкладка? в браузере? Или еще где-то?
Если задача еще актуальна - опишите, пожалуйста, подробнее. Потому как со стороны кажется, что не самые лучшие проверки сделаны. Может таить множество подводных камней.

В строчке c findElements есть неплохой шанс получить IndexOutOfBoundsException, ведь нету уверенности, что метод не вернет пустой список.

1 Симпатия

Извините, перечитала заголовок, и да суть не понятна…
Страница новостей, в правом сайдбаре нажимаю на любую категорию, например “Недвижимость”.
Потом проверяю, что только одна категория активна и что она имеет название “Недвижимость”
.

Вот, теперь понятно. Тогда да, Ваше решение подходит.
Но про IndexOutOfBoundsException не забывайте :smile:

1 Симпатия

Спасибо, не забуду)
А вы не подскажете, почему тогда в данном случае, когда я вместо “Недвижимости” ввожу некорректные данные, в данном случае “0000000000000000” тест успешно отрабатывается?
Он успешно отрабатываться должен только на “Недвижимость”…

[quote="irinabas88, post:4, topic:5645"]
//Проверяем, что активна именно категория Недвижимость
driver.findElements(By.cssSelector(".b-categories__item.b-categories__item--active")).get(0).getText().equals("**0000000000000000**");
[/quote]

Вот это уже странно. А что возвращает вообще?

driver.findElements(By.cssSelector(".b-categories__item.b-categories__item--active")).get(0).getText()
1 Симпатия

Не копайте так глубоко - человек просто не может догадаться поставить Assert.

1 Симпатия

Спасибо…Если, я конечно, правильно поняла, это Assert.assertTrue()?

По крайней мере, так работает)):

Assert.assertTrue(driver.findElements(By.cssSelector(".b-categories__item.b-categories__item--active")).get(0).getText().equals("Недвижимость"));