Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Немного запутался с тем как нужно реализовать методы, насколько я понял из описания:
- 1. Нам нужно реализовать дополнительные сложные методы
- 2. В этих методах мы будем использовать новые кастомные кондишны
- 3. Новые методы нужно размещать в TodoMVCPage?
- 4. И с методами если честно есть сложности...
- /*
- для начала - сделай рабочим предыдущее задание
- там есть немного ошибок, которые не позволяют использовать решение в принципе
- но они легко исправимы - и я расписала как
- убедись - что прошлое задание работает
- отдай его на ревью и начинай работать с этим заданием
- во-первых
- перенеси все наработки из предыдущего задания
- ConciseAPI с его полезными методами
- собственно - весь core
- BaseTest с созданием вебдрайвера и его закрытием
- в пейдже - применяем наработки
- используем метод $
- для списка тасок - используем переменную типа By
- какие проверки списка тасок у нас были
- exactTexts
- empty
- exactTexts - у тебя уже есть textsOf
- по аналогии разработай новый кондишен exactTextsOf
- разница - только в том как сравнивать строки
- теперь будешь ставнивать на equals, а не contains
- а все остальное - один в один
- empty - фактически, проверка размера списка, что он равен нулю
- такой кондишен у нас тоже есть
- для active & completed фильтров - мы дополнительно перед проверками фильтровали таски по visible
- в этой версии - на базе уже существующих exactTextsOf и sizeOf
- разработай exactTextsOfVisible и sizeOfVisible
- разница только в том
- что в таких кондишенах
- после получения списка вебэлементов
- нужно его обойти
- и получить новый список вебэлементов
- только тех которые видимы (у вебэлемента есть свойство isDisplayed)
- как мы получали доступ к таске
- tasks.find(exactText("task1")
- тут - нам понадобится новый кондишен
- который будет иметь вот такую сигнатуру
- ExpectedCondition<WebElement> elementWithText(final By elementsLocator, final String exactText)
- в котором - в apply - вернешь такой элемент списка
- у которого текст equals переданному
- а не найдешь такой єлемент - значит вернешь нулл
- в результате - проверка assertThat(elementWithText(tasks, "task1"))
- будет возвращать тебе нужный веэлемент
- по аналогии с уже существующим методом $
- реализуй еще один метод $(ExpectedCondition<WebElement> conditionToWaitElement)
- который по сути - и будет внутри себя делать assertThat и возвращать его результат
- и тогда - когда нужно будет получить доступ к таске -
- применяй $(elementWithText(tasks, "task1"))
- еще - для редактирования таски
- нам нужно было получить таску у которой есть класс editing
- tasks.find(cssClass("editing"))
- чтобы реализовать это - тебе нужно написать новый кондишен
- ExpectedCondition<WebElement> elementWithCssClass(final By elementsLocator, final String cssClass)
- во сути - для каждого элемента списка нужно будет анализировать не тексты
- а значения атрибута class - element.getAttribute("class")
- это - строка со значениями цсс классов элемента, разделенными пробелами (вспомни - active editing)
- как это вообще делать
- задание большое
- делать все сразу - стратегия не очень удобная
- сначала - закомментируй все тесты
- и закомментируй все в пейдже
- за исключением проверок списка тасок, переменной tasks и метода добавления тасок
- реализуй простой тест
- открыли урл
- добавили тасок
- проверили список тасок
- уже в этот момент - многое прояснится
- и так - шаг за шагом - раскомментируй что-то в пейдже и это реализуй
- а затем - можно будет вернуться к ранее созданному набору тестов
- и добиться того чтоб он работал
- советую - закончить прошлую работу
- начать эту
- и поднакопить вопросов
- думаю, дальше будет полезнее - созвон по скайпу и разбор твоих вопросов глядя на один экран
- в принципе - можно и без этог обойтись
- мое дело - предложить)
- а ты - смотри сам
- */
Advertisement
Add Comment
Please, Sign In to add comment