Что такое исключения?
Исключением является ошибкой , которая происходит во время выполнения программы. Однако во время работы программы языки программирования генерируют исключение, которое следует обрабатывать, чтобы избежать сбоя программы.
Исключение указывает, что, хотя событие может произойти, событие такого типа происходит нечасто. Когда метод не может обработать исключение, он вызывается функцией вызова. В конце концов, когда исключение выдается из основной функции, программа внезапно завершается.
В этом уроке вы узнаете:
- Что такое исключения?
- Исключения в Selenium Web-драйвере
- Обработка исключений Selenium
- Методы отображения исключения
Распространенные исключения в Selenium Web driver
Название исключения | Описание |
ElementNotVisibleException | Этот тип исключения Selenium возникает, когда существующий элемент в DOM имеет скрытый набор функций. |
ElementNotSelectableException | Это исключение Selenium возникает, когда элемент представлен в DOM, но вы можете выбрать его. Поэтому невозможно взаимодействовать. |
NoSuchElementException | Это исключение возникает, если элемент не может быть найден. |
NoSuchFrameException | Это исключение возникает, если цель кадра, на которую нужно переключиться, не существует. |
NoAlertPresentException | Это исключение возникает, когда вы переключаетесь на не представленное предупреждение. |
NoSuchWindowException | Это исключение возникает, если цель окна, которую нужно переключить, не существует. |
StaleElementReferenceException | Это исключение Selenium возникает, когда веб-элемент отсоединен от текущего DOM. |
SessionNotFoundException | WebDriver работает после выхода из браузера. |
TimeoutException | Бросается, когда не хватает времени для выполнения команды. Например, искомый элемент не был найден в указанное время. |
WebDriverException | Это исключение имеет место, когда WebDriver работает сразу после закрытия браузера. |
ConnectionClosedException | Этот тип исключения имеет место при отключении драйвера. |
ElementClickInterceptedException | Команда может быть не выполнена, так как элемент, принимающий события, скрывает элемент, по которому был запрошен щелчок. |
ElementNotInteractableException | Это исключение Selenium выдается, когда любой элемент представлен в DOM. Однако невозможно взаимодействовать с таким элементом. |
ErrorInResponseException | Это происходит при взаимодействии с расширением Firefox или удаленным сервером драйверов. |
ErrorHandler.UnknownServerException | Исключение используется в качестве заполнителя в случае, если сервер возвращает ошибку без трассировки стека. |
ImeActivationFailedException | Это ожидание произойдет, когда активация двигателя IME не удалась. |
ImeNotAvailableException | Это происходит, когда поддержка IME недоступна. |
InsecureCertificateException | Навигация заставила пользовательский агент попадать в сертификат предупреждения. Это может быть вызвано недействительным или просроченным сертификатом TLS. |
InvalidArgumentException | Это происходит, когда аргумент не принадлежит ожидаемому типу. |
InvalidCookieDomainException | Это происходит, когда вы пытаетесь добавить cookie в другой домен вместо текущего URL. |
InvalidCoordinatesException | Этот тип исключения соответствует взаимодействующей операции, которая недопустима. |
InvalidElementStateExceptio | Это происходит, когда команда не может быть завершена, когда элемент недействителен. |
InvalidSessionIdException | Это исключение имело место, когда данный идентификатор сеанса не включен в список активных сеансов. Это означает, что сеанс не существует или неактивен. |
InvalidSwitchToTargetException | Это происходит, когда цель или окно, которое нужно переключить, не существует. |
JavascriptException | This issue occurs while executing JavaScript given by the user. |
JsonException | It occurs when you afford to get the session when the session is not created. |
NoSuchAttributeException | This kind of Exception occurs when the attribute of an element could not be found. |
MoveTargetOutOfBoundsException | It takes place if the target provided to the ActionChains move() methodology is not valid. For Example, out of the document. |
NoSuchContextException | ContextAware does mobile device testing. |
NoSuchCookieException | This Exception occurs when no cookie matching with the given pathname found for all the associated cookies of the currently browsing document. |
NotFoundException | This Exception is a subclass of WebDriverException. This will occur when an element on the DOM does not exist. |
RemoteDriverServerException | This Selenium exception is thrown when the server is not responding because of the problem that the capabilities described are not proper. |
ScreenshotException | It is not possible to capture a screen. |
SessionNotCreatedException | It happens when a new session could not be successfully created. |
UnableToSetCookieException | This occurs if a driver is unable to set a cookie. |
UnexpectedTagNameException | Happens if a support class did not get a web element as expected. |
UnhandledAlertException | This expectation occurs when there is an alert, but WebDriver is not able to perform Alert operation. |
UnexpectedAlertPresentException | It occurs when there is the appearance of an unexpected alert. |
UnknownMethodException | This Exception happens when the requested command matches with a known URL but and not matching with a methodology for a specific URL. |
UnreachableBrowserException | This Exception occurs only when the browser is not able to be opened or crashed because of some reason. |
UnsupportedCommandException | This occurs when remote WebDriver does n’t send valid commands as expected. |
Handling Selenium Exceptions
Here, are some important standard using which you can handle Exceptions in Selenium WebDriver:
Try-catch: This method can catch Exceptions, which uses a combination of the try and catch keywords. Try command indicates the start of the block, and Catch is placed at the end of the try block, which helps to resolve the Exception.
try { // Code } catch (Exception e) { // Code for Handling exception }
- Multiple catch blocks: There are various types of Exceptions, and you can expect more than one exception from a single block of code. Multiple catches help you to handle every type of Exception separately with a separate block of code. It can be used for more than two catch blocks, and there is no limitation on the number of catch blocks.
try { //Code } catch (ExceptionType1 e1) { //Code for Handling Exception 1 } catch (ExceptionType2 e2) { //Code for Handling Exception 2 }
- Throw: When you want to generate an Exception, the Throw keyword is used to throw Exception to handle it in the run time. When you are throwing an Exception without handling it, then they need to use Throw keyword.
public static void anyFunction() throws Exception{ try { // write your code here } Catch (Exception b) { // Do whatever you want to perform // Throw the Exception back to the system throw(b); } }
- Несколько исключений : Вы можете упомянуть различные исключения в предложении throws.
public static void anyFunction() throws ExceptionType1, ExceptionType2{ try { // write your code here } catch (ExceptionType1 e1) { // Code to handle exception 1 } catch (ExceptionType1 e2) { // Code to handle exception 2 }
- И наконец : ключевое слово Final используется для создания блока кода под блоком try. Это последний код, который помогает вам выполнять независимо от возникновения исключения
try { //Code } catch (ExceptionType1 e1) { //Catch block } catch (ExceptionType2 e2) { //Catch block } catch (ExceptionType3 e3) { //Catch block } finally { //The finally block always executes. }
Методы отображения исключения
Вы также можете использовать следующие методы для отображения информации об исключении:
- printStackTrace () : эта функция печатает трассировку стека, имя исключения и другое полезное описание.
- toString () : эта функция возвращает текстовое сообщение с описанием имени и описания исключения.
- getMessage () : помогает отображать описание исключения.
Резюме:
- Исключением является ошибка, которая возникает во время выполнения программы.
- Try-catch: этот метод может перехватывать исключения, которые используют комбинацию ключевых слов try и catch.
- Несколько уловок помогают вам обрабатывать каждый тип исключения отдельно с помощью отдельного блока кода.
- Ключевое слово Throw используется, чтобы вызвать исключение, чтобы обработать его во время выполнения.
- printStackTrace (): эта функция печатает трассировку стека, имя исключения и другое полезное описание
- toString (): эта функция возвращает текстовое сообщение с описанием имени и описания исключения.
- getMessage (): помогает отображать описание исключения.