Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public String toString() {
- return String.format("\nElement's locator - %s\nExpected size to be: %s\nActual size is: %s\n"
- , elementsLocator
- , expectedSize
- , listSize);
- /*
- Size of list located ....
- should be ....
- while actual size is ...
- */
- public String toString() {
- return String.format("\nText of element with index %s is:\n%s\nElement locator - %s\nExpected text: %s"
- , index
- , currentText
- , elementsLocator.toString()
- , expectedText);
- /*
- Text of ....-th element of list located ....
- should contain ....
- while actual text is ....
- */
- /*
- Предлагаю переформулировать сообщения
- важно - чтобы сообщение было понятным
- что проверяли
- для какой сущности проверяли
- что ожидали
- и что по факту там было
- вполне возможно получить понятную и точную фразу
- на формулировках не настаиваю
- но фраза должна быть читаемой и точной
- не пренебрегай использованием "\n" - чтобы фраза выводилась в несколько строк
- тоже - чтоб легче читать было
- */
- **********************
- try {
- elements = driver.findElements(elementsLocator);
- currentText = elements.get(index).getText();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return currentText.contains(expectedText);
- /*
- ловить стоит то, что мы ожидаем и собираемся обрабатывать
- если ловить вот так - catch (Exception e) - то можно пропустить ошибки, которые важно увидеть
- http://www.derekashmore.com/2014/11/is-it-bad-practice-to-catch-exception.html
- http://www.hans-eric.com/2009/10/31/the-bad-practices-of-exception-handling/
- http://stackoverflow.com/questions/2416316/why-is-the-catchexception-almost-always-a-bad-idea
- стектрейсы читать - не метод - чтоб увидеть проблему
- да и выводить их - в данном случае не лучший выход
- какие у нас тут могут быть источники исключений - вполне ожидаемых
- IndexOfBoundsException - если мы пытаемся получить доступ к элементу списка по индексу вне списка
- возможно - могут возникнуть и такие
- http://docs.seleniumhq.org/exceptions/stale_element_reference.jsp
- https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/ElementNotVisibleException.html
- (если таких проблем пока не наблюдаешь - пока лови только IndexOfBoundsException,
- далее по курсу будет про эти исключения подробнее)
- так вот
- если мы такое исключение словили - нам не надо далее тексты проверять
- это уже значит - что метод apply - должен вернуть FALSE в данном случае (т к у нас ExpectedCondition<Boolean>)
- поэтому
- return currentText.contains(expectedText);
- стоит делать сразу после получения currentText
- а ниже - только вернуть FALSE
- */
Advertisement
Add Comment
Please, Sign In to add comment