julia_v_iluhina

Untitled

Oct 29th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.83 KB | None | 0 0
  1. public static ExpectedCondition<List<WebElement>> exactTextsInVisibleElements(final By elementsLocator, final String... expectedTexts) {
  2.  
  3.         return elementExceptionsCatcher(new ExpectedCondition<List<WebElement>>() {
  4.             private List<WebElement> visibleElements;
  5.             /*
  6.                 эта переменная используется только в apply
  7.                 там ее и объявляй
  8.                 нету причин выносить ее на уровень класса
  9.             */
  10.  
  11.             public List<WebElement> apply(WebDriver driver) {
  12.                 List<WebElement> elements = driver.findElements(elementsLocator);
  13.                 visibleElements = getVisibleElements(elements);
  14. ******************************************************************
  15.  public static ExpectedCondition<List<WebElement>> exactTextsInVisibleElements(final By elementsLocator, final String... expectedTexts) {
  16.  ...
  17.                  for (int i = 0; i < actualVisibleTexts.size(); i++) {
  18.                      return !expectedTexts[i].equals(actualVisibleTexts.get(i)) ? null : visibleElements;
  19.                  }
  20. /*
  21.     в данном случае тернарный не очень уместен)
  22.     в exactTexts - код правильнее
  23.  
  24.     тут - мы в любом случае аыходим на первой итерации
  25.     сравнили первый элемент
  26.     и если его текст равен - решили - что уже все ок (а могут быть проблемы с последующими элементами)
  27.  
  28.     тут корректнее - если встречаем первый не верный элемент - возвращать нулл
  29.     а список возвращать - уже после цикла
  30.  
  31.     мы дотуда дойдем только если все элементы ок (раз мы внутри цикла не вышли)
  32.  
  33.     смотри exactTexts )
  34.  
  35.     тоже если хочешь - заверни этот одинаковый кусок в универсальный метод
  36.     поправить надо обязательно
  37.     насчет метода - не настаиваю
  38. */
  39. ***********************************
  40. public static void delete(String taskText) {
  41. //        hover($(listElementHasExactText(tasks, taskText), ".destroy"));
  42.         hover($(listElementHasExactText(tasks, taskText), "label"));
  43. /*
  44.     выкрутилась красиво
  45.     но универсальнее было сделать метод
  46.      public static WebElement $(ExpectedCondition<WebElement> conditionWaitElement)
  47.  
  48.     для реализации этой задачи - да
  49.     ты таки выкрутилась)
  50.  
  51.     все же подумай над моим предложением)
  52. */
  53. *****************************************
  54.     public static void assertTasks(String... tasksTexts) {
  55.         $$(exactTexts(tasks, tasksTexts));
  56.  
  57.     }
  58.  
  59.     public static void assertVisibleTasks(String... tasksTexts) {
  60.         $$(exactTextsInVisibleElements(tasks, tasksTexts));
  61.     }
  62. /*
  63.     технически - конечно верно
  64.  
  65.     но точнее было бы использовать не
  66.     $$
  67.     а
  68.     assertThat
  69.  
  70.     кстати, в assertNoTasks и assertNoVisibleTasks - ты так и делала
  71.    
  72.     мы же проверку делаем
  73.  
  74.     $$ - лучше использовать для работы со списокм
  75.     для реализации действий
  76.     нам и правда это тут не пригодится
  77.  
  78.     а вот в случае проверок - точнее будет использовать assertThat
  79.  
  80.     хотя технически - вариант рабочий
  81.     все равно поправь)
  82. */
Advertisement
Add Comment
Please, Sign In to add comment