julia_v_iluhina

Untitled

Jul 27th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.33 KB | None | 0 0
  1.  public void doubleClick(WebElement element){
  2. /*
  3.     Получился универсальый метод, который можно применять и в других проектах
  4.     Размести его в классе Helpers как статический метод, в ветке src \ main
  5.     И уже в пейдже - просто используй
  6. */
  7.  
  8. ****************************
  9.  
  10.  public SelenideElement startEditing(String oldTaskText, String newTaskText) {
  11.         SelenideElement element = ...;
  12.         doubleClick(element);
  13.         SelenideElement newElement = ....;
  14.         return newElement;
  15.     }
  16. /*
  17.     думаю, было бы не хуже, если тут не использовать промежуточных переменных
  18.     что-то вот такого плана
  19. */
  20.  
  21.      public SelenideElement startEditing(String oldTaskText, String newTaskText) {
  22.         doubleClick(...);
  23.         return ...;
  24.     }
  25. **************************
  26.     @Step
  27.     public void delete(String taskText) {
  28.         hover(taskText).$(".destroy").click();
  29.     }
  30.  
  31.     public SelenideElement hover(String taskText){
  32.         ...
  33.     }
  34. /*
  35.     Можно было не реализовывать hover
  36.     он работает нормально, за тем исплючением, что возвращает null
  37.  
  38.     было достаточно код в методе delete - разбить на 2 строки
  39.     добавилась бы лишь одна строка кода
  40.  
  41.     что-то типа такого
  42. */
  43.     @Step
  44.     public void delete(String taskText) {
  45.         ....hover();
  46.         ....$(".destroy").click(); 
  47.     }
  48. /*
  49.     где ... - элемент, с которым тут работаем = таска,найденная по ее тексту
  50.     если бы вообще метод hover не работал бі или его не существовало - тогда
  51.     было бы разумнее реализовать hover(...) аналогично doubleClick(...) -
  52.     и в том же классе, и  с такими же параметрами
  53.  
  54.     а в данном случае - достаточно просто код в методе delete(String taskText)
  55.     разбить на 2 строки - и проще, и достаточно, и понятнее
  56. */
  57.  
  58. *********************
  59. название и расположение пекеджа pageоbjects
  60.  
  61. уже было про это
  62. обычно пекедж для пейджей называют pages (неважно - это пейджи-объекты или пейджи-модули)
  63. и располагают в ветке src \ main
  64.  
  65. еще раз приведу пример хорошей структуры, примени это для проекта
  66.  
  67. http://joxi.ru/nAyqEx7HXvxQoA
  68. http://prnt.sc/bvuytd
  69.  
  70. вот пример хорошей структуры проекта
  71.  
  72. в src \ main
  73.  
  74.   core - универсальное, что можно переиспользовать в разных проектах
  75.   pages - пейджи тоже можно переиспользовать для других тестов этого же приложения
  76.  
  77.  
  78. в src \ test
  79.  
  80.   testdata - тестовые данные (если такие есть и они вынесены в отдельный класс)
  81.   testconfigs - предки тест-класса (так можно их изолировать от  собственно тест-классов - чтоб легче было ориентироваться  
  82.  
  83.  
  84. про пекеджи еще немного)
  85. если GroupID = com.somesite
  86. а проект todomvctest
  87. то пакет корневой должен быть com.somesite.todomvctest
  88.  
  89. логика  - чтобы "не смешивались имена сущностей"
  90.  
  91. внутри одной компании - может быть несколько проектов)
  92. и у всех у них один com.somesite  - базовый пекедж
  93. но для каждого проекта должен быть свой  “базовый пекедж проекта"
  94. иначе все смешается)
  95. важно то, что когда этот проект выльется в отдельную библиотеку,
  96. то не будет конфликтов при его подключении
Advertisement
Add Comment
Please, Sign In to add comment