julia_v_iluhina

Untitled

Dec 2nd, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.29 KB | None | 0 0
  1.     <dependency>
  2.         <groupId>com.codeborne</groupId>
  3.         <artifactId>selenide</artifactId>
  4.         <version>2.19</version>
  5.         <scope>test</scope>
  6.     </dependency>
  7. /*
  8.     версия 2.19 - слишком старая)
  9.  
  10.     рекомендую использовать такую комбинацию для тестов (по крайней мере на первых порах)
  11.     Selenide 3.11 + Firefox 47.0.1
  12.     это позволит пока обойтись без geckodriver (самым простым способом)
  13.  
  14.     чуть подробнее можно тут почитать
  15.     https://docs.google.com/document/d/1fodHkTunrtit-EiMBrb91Mc6rbnQ5LwtBL9rISQveKA/edit?usp=sharing
  16. */
  17. *********************************************
  18. Непонятным остался один вопрос. Почему селектор по тексту в браузере срабатывал, а в IIdea нет.
  19. где-то нашла предположение о том, что из-за числа в тексте.
  20. Но не уверенна Пришлось тащить ссылку через обращение к элементу массива
  21. Изначально хотела так
  22. #todo-list li:contains("Task 2")
  23. /*
  24.     Это очень хорошая мысль - искать таску по ее тексту
  25.     и мы в итоге придем к такой версии
  26.  
  27.     но не сейчас)
  28.  
  29.     какой синтаксис CSS  поддерживается по умолчанию - см тут
  30.     http://www.seleniumhq.org/docs/03_webdriver.jsp#by-css (см раздел By CSS)
  31.     и пока  - только это и будем использовать
  32.     http://www.w3schools.com/cssref/css_selectors.asp
  33.  
  34.     вот такой синтаксис css Selectors - с использованием :contains("Task 2") - это синтаксис Sizzle
  35.     т е - пока contains("Task 2") - не получится использовать в работе с  css Selectors
  36.     и пока не будем использовать xPath  - для поиска таски по ее тексту
  37.  
  38.     пока - с помощью доступного тебе синтаксиса CSS селекторов - ищи нужную тебе таску как n-ый элемент
  39.     цель - чуть освоиться с использованием и построением CSS селекторов
  40.     затем - мы, конечно же, таску будем искать по ее тексту
  41.     но  - это уже потом
  42.     в текущей версии - ищем таску как n-ый элемент списка
  43.  
  44.     на самом деле - и синтаксис Sizzle можно в Selenide использовать  - начиная с версии 2.15
  45.     http://selenide.org/2014/11/03/selenide-2.15/
  46.     Но и это - пока не будем использовать)
  47.     главное - это нам в итоге не пригодится
  48.     и второе - на некоторых приложениях (в том числе и на нашем https://todomvc4tasj.herokuapp.com)
  49.     проявляются проблемы с использованием Sizzle. Это пока надо решить на стороне Selenide
  50.  
  51.     Думаю - когда реализуем версию с поиском таски по ее тексту - ты со мной согласишься -
  52.     нам не нужно использовать  Sizzle)
  53.     И так будет ОК
  54.     Напоминаю - не торопись с поиском по тексту
  55.     Это пока отложим)
  56. */
  57.  
  58. *****************************
  59. public class TodoMVCTest {
  60.  
  61.     /*public WebDriver driver;
  62.     String driverPath = "C:\\Program Files\\Geckodriver\\";
  63.  
  64.        System.setProperty("webdriver.gecko.driver", driverPath+"geckodriver.exe");
  65. */
  66. /*
  67.     благодаря использованию версий  Selenide 3.11 + Firefox 47.0.1
  68.     тебе пока не придется как-то дополнительно настраивать вебдрайвер
  69.  
  70.     на первых порах это важно)
  71. */
  72.     @Test
  73.     public void testCreateTask()
  74.     /*
  75.         в тест-методе - мы не только создание таски тестируем
  76.  
  77.         посмотри раздел по неймингу в нашем faq
  78.         https://docs.google.com/document/d/10qSwWTQ6pGfVZSwOes-1QSmdflMiGD2U_y53VHq2m20/edit?usp=sharing
  79.  
  80.         особенно - вот это
  81.         https://docs.google.com/document/d/10qSwWTQ6pGfVZSwOes-1QSmdflMiGD2U_y53VHq2m20/edit#bookmark=id.txqig9rkgybo
  82.     */
  83.    {
  84.    /*
  85.         в меню IntelIJ Idea
  86.         выдели код (edit -> Select All)
  87.         и выполни code->reformat code
  88.  
  89.         код будет реформатирован - все оступы будут приведены к стандартным
  90.  
  91.         в таком виде - будет легче воспринимать код
  92.         и тебе, и другим)
  93.    */
  94.  
  95.      open("https://todomvc4tasj.herokuapp.com");
  96.      /*
  97.         используй пропуски строк - для разделения кода на блоки
  98.         каждый блок - решает какую-то всою задачу
  99.         это тоже облегчит восприятие кода
  100.         я бы тут пропустила строку )
  101.      */
  102.      $("#new-todo").setValue("Task 1").pressEnter();
  103.        $("#new-todo").setValue("Task 2").pressEnter();
  104.        $("#new-todo").setValue("Task 3").pressEnter();
  105.        $("#new-todo").setValue("Task 4").pressEnter();
  106.      /*
  107.            в тесте нужны проверки
  108.                         тест - это не только нужные действия
  109.                         это еще и проверки результатов действий
  110.                         и правильнее - не откладывать проверки
  111.                         а делать их сразу после действий
  112.                         т к именно это позволит нам понять - что конкретно работает не так как нужно
  113.  
  114.                         и как писала выше - проверки должны касаться не только таски, с которой мы непосредственно работали
  115.                         а всех тасок в списке
  116.                         ведь ошибка может проявляться и так - после работы с одной таской - состояние другой(или других) тасок тоже как-то портиться
  117.  
  118.                         есть причины и/или цели
  119.                         по которым мы можем отложить проверку на несколько шагов
  120.                         вот, например выше - мы выполнили проверку после добавления всех 4-ех тасок
  121.                         даже если тест упал бы на той проверке - мы бы могли быстро понять - с чем у нас проблема - с добавлением тасок
  122.                         т е - точности мы не потеряли, проверив состояние списка тасок аж после добавления 4-ой таски
  123.                         пока - принимая решение - делать ли проверку или ее отложить - руководствуйся вот такими соображениями
  124.                         но в целом правило такое - проверки нужно делать сразу
  125.  
  126.            добавление тасок + проверки = еще один блок
  127.            и далее применяй эти советы - и про блоки, и про проверки
  128.      */
  129.        $("#todo-list li:nth-of-type(2)").hover();
  130.        $("#todo-list li:nth-of-type(2) .destroy").click();//.destroy").;
  131.      /*
  132.         да, я как раз и говорила про такого рода селекторы - поиск таски по ее номеру
  133.         реализация удаления таски - ок
  134.  
  135.         нужна проверка)
  136.      */
  137.        $("#todo-list li:nth-of-type(3)").hover();
  138.        $("#todo-list li:nth-of-type(3) .toggle").click();
  139.      /*
  140.         а тут hover() - не нужен
  141.         если кнопка удаления - становится видимой только после того
  142.         как курсор мыши наведен на таску
  143.  
  144.         то тут чекбокс .toggle - видим всегда
  145.         и hover() - не нужен
  146.      */
  147.    ...
  148.    /*
  149.         не забывай про проверки
  150.         и в конце теста - после последней операции - проверка тоже нужна
  151.    */
  152.  
  153.  
  154.  
  155.        }
  156.    /*
  157.        потерялась скобочка )
  158.        еще одна
  159.        но это уже мелочи
  160.    */
Advertisement
Add Comment
Please, Sign In to add comment