Селен: полезно ли ловить исключение NoSuchElementException для элемента, реагирующего на нажатия? - PullRequest
0 голосов
/ 01 июня 2018

Почему мы ловим NoSuchElementException?Имеет смысл перехватить исключение, когда мы только проверяем наличие элемента на определенной странице и не выполняем над ним никаких действий.Мы можем перехватить это исключение и зарегистрировать пользовательское сообщение, например «Элемент не найден»

Когда мы собираемся щелкнуть элемент и, если он не найден на странице, селен выбрасывает NoSuchElementException.Какая польза от перехвата этого исключения вместо того, чтобы позволить ему остановить тест и провалить тестовый сценарий?

Примечание. Мои дальнейшие действия зависят от этого шага щелчка.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Одной из причин перехвата исключения является предоставление более релевантного результата теста.Например, если элемент div не найден на странице из 20-30 элементов div, поскольку селектор не соответствует этому конкретному элементу div, вы можете оставить исключение необработанным с общим сообщением об ошибке или перехватить его.и выдать другое исключение с сообщением об ошибке «navbar is missing».

Если из общего сообщения об ошибке ясно, что не так, или у вас есть тестовое сообщение об ошибке, которое объясняет это, нет причин для перехватаit.

Другая причина поймать это исключение состоит в том, что оно является частью пропускаемого кода (пропустите этот тест, если / если).Итак, вы ищете элемент, и если он присутствует, вы продолжаете тестирование, если нет - пропускаете его.

Могут быть и другие причины, но это две общие.

0 голосов
/ 01 июня 2018

Существует два типа исключений:

1. Проверенные исключения

2. Непроверенные исключения

Проверенные исключения проверяются только во время компиляции, они должныбыть обработанным программистом .Компилятор проверит во время компиляции, обрабатываются ли эти исключения или нет, если не происходит ошибка времени компиляции.Некоторые из проверенных исключений: IOException, FileNotFoundExpection и т. Д.

Непроверенные исключения: непроверенные исключения не проверяются компилятором во время компиляции.все исключения, которые расширены классом RuntimeException, являются непроверенными исключениями.Некоторыми из непроверенных исключений являются AritmeticException, NullPointerException и т. Д. В селене мы видим непроверенные исключения, такие как NoSuchElementException, StaleElementReferenceException, NoSuchWindowException, TimeoutException и т. Д.

Короче, проверенные исключения должны быть перехвачены.RuntimeException, также называемое непроверенными исключениями, не должно быть перехвачено

Более подробную информацию можно найти по

http://toolsqa.com/selenium-webdriver/exception-handling-selenium-webdriver/ http://www.seleniumeasy.com/java-tutorials/exception-handling-in-selenium-webdriver-using-java-examples

...