Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import static com.home.searchtask.ToDo.*;
- /*
- для пейджа-модуля в задании - тест для Google Search - ToDo - довольно странное имя)
- оно что нам говорит?
- похоже - только то, что задача переделывалась из todoMVC )
- вообще - в этом задании - не обязательно было реализовывать пейдж
- т к согласно условия -
- You will do only a smoke coverage and you most probably will not reuse "steps" in other tests.
- (Or you don't know will you reuse or not)
- но раз уже пейдж есть - то пусть будет в этом задании
- */
- public class GoogleSearchTaskTest {
- /*
- о чем говорит нам слово Task в имени тест-класса? )
- перечитай в faq раздел по неймингу)
- */
- @Test
- public void searchTaskWorkFlow() {
- /*
- а тут мы что тестируем?
- неужели todoMVC?
- судя по наванию тест-метода - да )
- */
- ...
- searchTask("Selenium automates browsers");
- /*
- о чем говорит нам слово Task в имени тест-метода? )
- */
- ...
- openFirstResult();
- /*
- раз уже реализуешь метод в пейдже - давай его сделаем более универсальным
- и уточним имя метода
- предлагаю релизовать метод followLink(int index)
- с тем - чтобы вызывать followLink(0) - для клика на главной линке нулевого (т е самого первого - нумерация ведь с нуля) результата
- */
- assertSeleniumOfficialPage();
- /*
- эти проверки - не имеют отношения к пейджу google search
- хотя бы просто потому - что с другой страницей работают
- и эти проверки - специфичны - конкретно для этого метода
- вряд ли они еще где-то понадобятся
- и их код - простой и наглядный
- потому - не надо тут каких-то вспомогательных методов
- реализуй эти проверки прямо в тест-методе
- так будет проще и нагляднее
- */
- }
- *********************************************************************
- public class ToDo {
- /*
- вспоминай работу по пейджам
- где правильно расположить пейдж
- про имя класса пейджа - писала выше
- */
- ElementsCollection searchTasks = $$(".r");
- /*
- http://joxi.ru/Y2LXgYnfnRzBo2 - твой вариант
- http://joxi.ru/l2ZNaR0F80XoY2 - нужный вариант
- во-первых - надо чтоб в элемент = результат поиска
- отбиралась не только главная линка а все, что касается результата
- сравни рисунки
- во-вторых - вот такие результаты - ка первый сверху - не дожны попадать в наш список результатов
- обрати внимание - этот первый - отличается от всех следующих 10-ти результатов
- бывает - что в результатах где-то в середине содержится такой блок
- бывает - таких блоков несколько
- по-разному)
- найди из результатов - именно те, что 10 основных
- в крайне редких случаях - их таки не 10
- будут у тебя такие сложности - показывай скриншоты - помогу разобраться
- как правило - 10 основных результатов
- */
- public static void searchTask(String searchTask) {
- /*
- подумай и нам именем метода, и над именем параметра
- и для того же элемента - посмотри другие его свойства
- обрати внимание на name
- оттолкнись от него
- это будет более наглядно
- строки поиска у гугла в разных продуктах - зачастую имеют такой name
- */
- public static void assertResultsAre(int searchResults) {
- /*
- подумай и над названием метода и над названием параметра
- оперируй переменной, которую выше объявил для работы с результатами поиска
- не надо один и тот же локатор повторять
- */
- public static void assertFirstResult(String firstResult) {
- /*
- Тут достаточно проверить - что переданный текст содержится в тексте результата - это проверяет кондишен text
- разумнее реализовать метод - который может проверить такой-то результат (согласно его индекса)
- подумай и над названием метода и над набором параметров и над их названиями
- дальше
- что мы проверяем
- мы проверяем текст такого-то результата
- вот и отталкивайся от переменной - которую мы выше объявили для коллекции результатов поиска
- получай такой-то результат
- и проверяй его текст
- те же подходы, что мы и раньше использовали
- мы минимизируем количество независимых селекторов
- делаем код более читабельным и более DRY
- */
- public static void openFirstResult() {
- /*
- писала выше - как реализовать метод по-другому - чтоб можно было с помощью метода - выбирать нужный результат по его индексу
- точно также - в коде метода - оттолкничь от коллекции результатов
- получи такой-то результат
- у него - главную линку
- и уже на ней - кликай
- и никаких новых независимых селекторов)
- */
- public static void assertSeleniumOfficialPage() {
- /*
- эти строки кода - ок
- но должы жить в тест-методе
- почему - написала выше)
- */
Advertisement
Add Comment
Please, Sign In to add comment