Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tasks.filterBy(visible).shouldHave(exactTexts(taskTexts));
- /*
- нам нужна ждущая проверка
- ситуации - сравнить тексты видимых элементов из списка элементов с переданными текстами
- мы - умеем реализовывать ждущую проверку для списка элементов вот так -
- assertThat(someCondition(elementsLocator, ...))
- вот и реализуем кондишен exactTextOfVisibleElements(By elementsLocator, String... expectedTexts)
- кондишен будет похож на textsOf
- только - после получения списка элементов по локатору - построй другой список - из элементов, которые видимы
- и уже далее - у этого списка видимых элементов - сверяй тексты с expectedTexts
- фактически - мы и фильтрацию, и проверку - делаем внутри кондишена
- выкрутились)
- не очень красиво, но вполне надежно и универсально
- для варианта tasks.filterBy(visible).shouldBe(empty);
- аналогично и тут
- можно реализовать кондишен sizeOfVisible
- и его использовать тут
- */
- ****************************
- $(byCss("#todo-count>strong")).shouldHave(exactText(String.valueOf(activeTasksCount)));
- /*
- тут - возможно, найдешь и стандартный кондишен для такой проверки
- проверяем - текст элемента на точное совпадение
- https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html
- в принципе - и свой кондишен exactText можно реализовать
- */
- ******************************************
- tasks.findBy(cssClass("editing"))
- /*
- тут - у нас цель - найти элемент списка с таким-то классом
- у тебя уже есть кондишен ExpectedCondition<WebElement> elementWithText
- а нам нужен - ExpectedCondition<WebElement> elementWithCssClass
- WebElement есть метод getAttribute
- можно получить значение любого атрибута
- в том числе и атрибута class
- в этом атрибуте - через пробел перечислены cssClass-ы элемента
- (например - у редактируемой активной таски - "active editing")
- когда мы нашли элемент - когда у элемента хотя бы один cssClass в точности равен переданному классу
- */
- ************************************************
- tasks.filterBy(cssClass(taskClass)).findBy(exactText(taskText))
- /*
- тут - чуть посложнее, но схема та же
- какая наша цель - найти элемент с таким-то текстом
- среди элементов списка, у которых есть класс такой-то класс
- проверять класс - мы уже научились)
- из списка веб-элементов
- отфильтровываем только те, у которых есть нужный нам класс
- и среди них ищем элемент с нужным нам текстом
- т е - опять - получим такой кондишен
- который и фильтрует, и ищет элемент в отфильтрованном
- кстати, можешь упростить реализацию - пользуйся просто toggle )
- тогда и такой кондишен не понадобится )
- т к вот этого - filterBy(cssClass(taskClass)) - уже делать не будем
- */
Advertisement
Add Comment
Please, Sign In to add comment