julia_v_iluhina

Untitled

Nov 25th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.95 KB | None | 0 0
  1.   public String toString() {
  2.                 return String.format("\nElement's locator - %s\nExpected size to be: %s\nActual size is: %s\n"
  3.                         , elementsLocator
  4.                         , expectedSize
  5.                         , listSize);
  6.   /*
  7.     Size of list located ....
  8.     should be ....
  9.     while actual size is ...
  10.   */
  11.             public String toString() {
  12.                 return String.format("\nText of element with index %s is:\n%s\nElement locator - %s\nExpected text: %s"
  13.                         , index
  14.                         , currentText
  15.                         , elementsLocator.toString()
  16.                         , expectedText);
  17.  /*
  18.     Text of ....-th element of list located ....
  19.     should contain ....
  20.     while actual text is ....
  21.  */
  22.  
  23.  /*
  24.     Предлагаю переформулировать сообщения
  25.  
  26.     важно - чтобы сообщение было понятным
  27.  
  28.     что проверяли
  29.     для какой сущности проверяли
  30.     что ожидали
  31.     и что по факту там было
  32.  
  33.     вполне возможно получить понятную и точную фразу
  34.  
  35.     на формулировках не настаиваю
  36.     но фраза должна быть читаемой и точной
  37.  
  38.     не пренебрегай использованием "\n" - чтобы фраза выводилась в несколько строк
  39.     тоже - чтоб легче читать было
  40.  
  41.  */
  42.  
  43.  **********************
  44.                  try {
  45.                      elements = driver.findElements(elementsLocator);
  46.                      currentText = elements.get(index).getText();
  47.                  } catch (Exception e) {
  48.                      e.printStackTrace();
  49.                  }
  50.                  return currentText.contains(expectedText);
  51. /*
  52.     ловить стоит то, что мы ожидаем и собираемся обрабатывать
  53.  
  54.     если ловить вот так - catch (Exception e) - то можно пропустить ошибки, которые важно увидеть
  55.     http://www.derekashmore.com/2014/11/is-it-bad-practice-to-catch-exception.html
  56.     http://www.hans-eric.com/2009/10/31/the-bad-practices-of-exception-handling/
  57.     http://stackoverflow.com/questions/2416316/why-is-the-catchexception-almost-always-a-bad-idea
  58.  
  59.     стектрейсы читать - не метод - чтоб увидеть проблему
  60.     да и выводить их - в данном случае не лучший выход
  61.  
  62.     какие у нас тут могут быть источники исключений - вполне ожидаемых
  63.         IndexOfBoundsException - если мы пытаемся получить доступ к элементу списка по индексу вне списка
  64.         возможно - могут возникнуть и такие
  65.         http://docs.seleniumhq.org/exceptions/stale_element_reference.jsp
  66.         https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/ElementNotVisibleException.html
  67.         (если таких проблем пока не наблюдаешь - пока лови только IndexOfBoundsException,
  68.         далее по курсу будет про эти исключения подробнее)
  69.  
  70.     так вот
  71.         если мы такое исключение словили - нам не надо далее тексты проверять
  72.         это уже значит - что метод apply - должен вернуть FALSE в данном случае (т к  у нас ExpectedCondition<Boolean>)
  73.          
  74.         поэтому
  75.          return currentText.contains(expectedText);
  76.         стоит делать сразу после получения currentText
  77.          
  78.         а ниже - только вернуть FALSE
  79. */
Advertisement
Add Comment
Please, Sign In to add comment