Рубрики
Без рубрики

49 Наиболее распространенных исключений Selenium для автоматизированного тестирования

Исключения в Selenium неизбежны. Вот 49 наиболее распространенных исключений Selenium, которые могут возникнуть при выполнении автоматизации тестирования Selenium. С тегами selenium, автоматизация, javascript, java.

Разработчик всегда будет писать код с учетом различных сценариев, но могут быть случаи, когда реализация работает не так, как ожидалось. Тот же принцип применим и к тестовому коду, который в первую очередь написан для проверки существующих функций продукта, выявления ошибок и обеспечения 100%-ного отсутствия ошибок в продукте.

Правильно говорят, что Правда всегда страннее вымысла, и вы станете свидетелями множества “странных вещей”, когда будете выполнять автоматизацию тестирования Selenium. Эти вещи или сценарии, с которыми вы сталкиваетесь при выполнении тестового кода, могут быть не очень распространенными, но реализация теста должна быть достаточно надежной для обработки таких сценариев. Эти сценарии удачно называются исключениями, и вы столкнетесь со многими такими исключениями при использовании Selenium для автоматического тестирования браузера.

Исключения Selenium широко используются для обработки сценариев ошибок и предотвращения сбоев веб-приложений. Хотя существует множество исключений Selenium, которые могут возникать во всем коде Selenium WebDriver, некоторые исключения Selenium специфичны для языков программирования, поддерживаемых платформой например, Java, C#, Python и т.д. В этом блоге рассматриваются общие исключения Selenium, а также исключения, относящиеся к конкретному языку, исчерпывающий список, который может быть полезен, когда вы сталкиваетесь с исключениями в своем коде.

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

Введение В Исключения Селена

Исключение (также называемое ошибкой) – это беспрецедентное событие, возникающее в процессе выполнения программы. При возникновении исключения нормальное выполнение программы прекращается и выполняется соответствующий обработчик исключений. Если нет обработчика исключений для обработки этого конкретного исключения, программа вернется к вызывающей функции, которая вызвала исключение, что в конечном итоге приведет к завершению программы.

Поскольку автоматизация тестирования Selenium выполняется на разных целевых платформах, устройствах и веб-браузерах, поведение тестового кода может варьироваться в зависимости от типа браузера или версии браузера. Например, некоторые атрибуты могут быть специфичными для браузера, и возникает исключение, если конкретный атрибут отсутствует в браузере, в котором выполняется автоматическое тестирование браузера. Общие имена свойств также могут зависеть от браузера, что может привести к исключениям Selenium, таким как исключение NoSuchAttributeException, если одно и то же свойство отсутствует в целевом браузере.

Правильная обработка исключений является хорошей практикой, поскольку необработанные исключения могут привести к сбою программы, что в конечном итоге затруднит работу продукта. Объект исключения содержит информацию о типе исключения, стеке вызовов и другую полезную информацию, которая будет полезна для отладки и повышения надежности кода.

Категории Исключений Из Селена

Существует две широкие категории исключений Selenium – проверенные исключения и непроверенные исключения. Эти исключения классифицируются в зависимости от времени обнаружения исключений, т.е. во время компиляции или во время выполнения.

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

Проверенные исключения в Selenium test automation обрабатываются в процессе реализации тестового кода, например, исключение NoSuchAttributeException и т.д. Обработка проверенных исключений происходит во время самой компиляции.

Если какой-либо метод выдает проверенное исключение, лучше определить обработчик, который обрабатывает это конкретное исключение.

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

Непроверенные исключения в Selenium test automation возникают во время выполнения и могут иметь более серьезные последствия, чем проверенные исключения. например, исключение ElementNotVisibleException, исключение MoveTargetOutOfBoundsException и т. Д.

Исключения в Java могут быть проверены или сняты, тогда как в C++ все исключения сняты. Непроверенные исключения обычно встречаются в сценариях, связанных с автоматическим тестированием браузеров, поскольку тесты охватывают различные комбинации и версии веб-браузеров и операционных систем.

Шпаргалка по исключениям Селена

При выполнении автоматического тестирования браузера в локальной или удаленной сетке Selenium вы можете столкнуться с различными типами исключений. Некоторые исключения Selenium специфичны для языка программирования, используемого для написания сценариев автоматизации тестирования Selenium.

Распространенные исключения из Селена

Ниже приведены некоторые из распространенных исключений Selenium, которые могут возникать во всем коде Selenium WebDriver.

  1. Исключение, перехваченное щелчком элемента

Команда щелчка элемента не может быть выполнена должным образом, так как элемент, получающий команду щелчка, был каким-то образом скрыт.

  1. Элемент Не Взаимодействующий Исключение

Это исключение Selenium ‘ElementNotInteractableException’ возникает, когда, несмотря на то, что целевой веб-элемент существует в DOM, взаимодействие с этим элементом приведет к попаданию в другой веб-элемент.

  1. Исключение элемента, не подлежащего выбору

Это исключение Selenium возникает, когда целевой элемент присутствует в ДОМЕНЕ, но с ним нельзя взаимодействовать, так как элемент не выбирается. Например, это исключение будет возникать при взаимодействии с элементом сценария.

  1. Элементноневидимое исключение

Наиболее распространенный тип исключения Selenium, который возникает, даже если веб-элемент присутствует, но он не виден. Поскольку элемент невидим, любое взаимодействие с элементом невозможно.

Этот сценарий часто встречается при автоматизации тестирования Selenium, когда предпринимается попытка выполнить соответствующую операцию (щелкнуть, прочитать и т.д.) Над веб-элементом, например, кнопкой, меткой и т.д., Но элемент скрыт от просмотра. Другой пример – элементы, определенные в HTML, которые имеют скрытый тип.

  1. Исключение ErrorInResponseException

Это исключение Selenium возникает, когда на стороне сервера возникает какая-либо проблема или ошибка. Это может произойти, когда неправильная комбинация имени пользователя и ключа доступа используется для доступа к удаленной облачной сетке Selenium, связи с удаленным сервером веб-драйверов или связи с расширением Firefox (или надстройкой Chrome). Некоторые из распространенных кодов ответов для ошибок на стороне сервера являются:

  • 401 – Неавторизованный
  • 400 – Плохой запрос
  • 500 – внутренняя ошибка сервера
  • 409 – Конфликт
  • 403 – Запрещенный
  • 405 – Метод не допускается

  • Исключение ImeActivationFailedException

Это исключение возникает, если по какой-либо причине не удалось активировать IME (Механизм методов ввода). Идеальный способ справиться с этим – проверить, доступна ли на машине ВРЕМЕННАЯ поддержка.

  • Имено недоступноеисключение

Это исключение Selenium возникает, если IME (механизм методов ввода) недоступен. Исключение ImeNotAvailableException выдается для каждого метода, связанного с IME, в случаях, когда на тестовой машине отсутствует временная поддержка.

  • Небезопасное исключение CertificateException

Использование просроченных или недействительных сертификатов TLS привело к тому, что агент пользователя выдал предупреждение о сертификате.

  • Исключение NoSuchFrameException

Исключение селена NoSuchFrameException возникает, когда кадр, на который нужно переключиться, не существует.

Чтобы избежать подобных исключений Selenium, рекомендуется добавить проверку работоспособности в код автоматического тестирования браузера относительно режима переключения на фрейм. Проверьте, правильно ли используется индекс кадра. Для обеспечения завершения загрузки кадра может быть добавлено дополнительное ожидание в несколько миллисекунд (мс).

  • Исключение NoSuchWindowException

Это исключение возникает, когда переключаемый объект окна не существует. Об этих сценариях можно позаботиться с помощью window_handles, чтобы получить текущий набор активных окон. Оконные дескрипторы можно использовать для выполнения соответствующих действий над ними.

  • Исключение удаленного сервера драйверов

Это исключение возникает, когда неправильные комбинации/поля в возможностях браузера приводят к тому, что сервер не отправляет ответ. Чтобы избежать таких исключений Selenium, важно, чтобы возможности браузера Selenium были тщательно проверены с точки зрения допустимых комбинаций (платформа + браузер), (платформа + браузер + версия браузера) и т.д.

  • Исключение из скриншота

Как следует из названия, это исключение Selenium возникает, когда захват экрана невозможен. Такой сценарий вероятен на веб-страницах/веб-приложениях, где пользователь вводит конфиденциальную информацию, например имя пользователя, пароль, банковскую информацию и т.д. В таких случаях снимок экрана не может быть сделан из-за ограничения на снимок экрана Здесь, ограничение на снимок экрана предотвращает захват или запись экрана.

  • Исключение SessionNotCreatedException

Это исключение возникает, когда создание нового сеанса не удается.

  • Исключение недействительного аргумента

Исключение InvalidArgumentException возникает, когда передаваемые аргументы либо недействительны, либо неверно сформированы.

Лучшей практикой является проверка загрузки тестируемой веб-страницы с использованием соответствующего ожидания (в мс) в коде автоматизации тестирования Selenium.

  • Исключение InvalidCookieDomainException

Это исключение Selenium возникает при попытке добавить файл cookie для другого URL/домена, отличного от текущего URL. Чтобы обработать это исключение, вам следует перейти по правильному URL-адресу, по которому необходимо добавить файл cookie.

  • Исключение InvalidCoordinatesException

Это конкретное исключение возникает, когда для операции взаимодействия предлагаются неправильные координаты.

Это также означает, что действию, зависящему от положения мыши (например, щелчку), не предшествовала операция перемещения или операции перемещения были предоставлены неверные координаты.

  • Исключение InvalidElementStateException

Это исключение Selenium возникает, когда команда не может быть выполнена, поскольку элемент не находится в допустимом состоянии или элементу не разрешено выполнять это действие. Это может быть вызвано, если для веб-элемента, который не редактируется и не подлежит сбросу, предпринимается попытка выполнить такую операцию, как очистка элемента.

Чтобы обработать такое исключение в Selenium test automation, рекомендуется дождаться включения этого элемента, прежде чем с ним будет выполнено требуемое действие.

  • Исключение InvalidSelectorException

Использование недопустимых или неправильных селекторов для определения местоположения веб-элементов может произойти случайно, если имя селектора изменяется между различными выпусками. Исключение InvalidSelectorException возникает, если селектор, используемый для поиска веб-элемента, не возвращает веб-элемент.

Обычно это происходит, когда выражение XPath является селектором, а XPath недопустим. Это приводит к невозможности найти нужный веб-элемент.

  • Исключение InvalidSessionIdException

Это исключение возникает, если идентификатор сеанса, используемый в реализации автоматизации тестирования Selenium, недействителен, т.е. его нет в списке активных в данный момент сеансов. Это может произойти, если сеанс либо не активен, либо никогда не существовал.

  • Исключение InvalidSwitchToTargetException

Это исключение Selenium появляется, если переключаемый целевой кадр или окно являются недопустимыми. Важно проверить XPath целевого кадра с помощью “Инструмента проверки”, прежде чем переключаться на этот кадр.

  • Исключение JavascriptException

Это исключение возникает, когда возникает проблема при выполнении кода JavaScript.

  • Исключение NoAlertPresentException

Это происходит при переключении на оповещение, которого еще нет на экране. Идеальный способ обработки предупреждений – проверить, присутствует ли предупреждение, после чего следует вызвать требуемую операцию в классе Alert().

  • Исключение MoveTargetOutOfBoundsException

Это исключение Selenium возникает, если цель, предоставляемая методу перемещения цепочек действий(), выходит за рамки, т.е. недействительна или находится за пределами документа/веб-страницы.

Перед вызовом метода перемещения класса Action Chains() вы всегда должны проверять местоположение, которое мы пытаемся переместить, и выполнять то же самое, только если местоположение присутствует на экране.

  • Исключение NoSuchAttributeException

Это одно из немногих исключений Selenium, с которым вы обязательно столкнетесь при автоматическом тестировании браузера. Исключение NoSuchAttributeException возникает, если атрибут элемента не может быть найден.

Чтобы обработать это исключение, необходимо проверить наличие атрибута для браузера, в котором выполняется тестирование. Разные имена свойств для одного и того же свойства могут отличаться в разных браузерах, и неэффективная обработка может привести к этому исключению.

Другой способ избежать возникновения этого исключения – изменить атрибут на основе новых сведений об элементе в DOM.

  • Нет Такого Исключения Из Файлов Cookie

Это исключение Selenium возникает в случаях, когда файлы cookie, соответствующие заданному пути, отсутствуют в связанных файлах cookie активного документа текущего контекста просмотра.

  • Исключение NoSuchElementException

Исключение NoSuchElementException возникает, когда локатор, используемый для доступа к элементу, недействителен или предпринимается попытка выполнить действие над элементом, которого нет в DOM. В любом из случаев элемент не был бы найден.

Чтобы обработать это исключение Seleniumexception, вы должны проверить, правильный ли селектор, и если он правильный, подождите еще немного, чтобы обеспечить появление WebElement.

  • Исключение StaleElementReferenceException

Это исключение Selenium возникает, когда делается ссылка на элемент, которого больше нет в DOM страницы. Проще говоря, элемент пришел в негодность или устарел. Некоторые из возможных причин этого конкретного исключения Selenium следующие:

  • Элемент может находиться внутри обновленного iFrame.
  • Возможно, страница была обновлена, и элемент, к которому требуется доступ, больше не является частью текущей страницы.
  • Элемент мог быть удален и повторно добавлен на экран, так как элемент был найден.

Возможным решением для обработки этого исключения является использование динамического XPath для поиска требуемого элемента в цикле и прерывания цикла, как только элемент будет найден.

  • Исключение тайм-аута

Исключение TimeoutException возникает, когда команда, которая в данный момент выполняется, не завершается в течение ожидаемого периода времени.

Возможным решением для обработки этого исключения является увеличение времени ожидания завершения выполнения команды. Однако для времени ожидания следует выбрать идеалистическое значение, иначе дальнейшее выполнение может быть отложено.

  • Исключение UnableToSetCookieException

Это исключение Selenium возникает в тех случаях, когда веб-драйвер Selenium не может установить файл cookie.

Можно добавить дополнительное время ожидания, чтобы файл cookie был загружен для домена.

  • Неожиданное исключение alertpresentexception

Это происходит, когда появляется неожиданное предупреждение. Распространенной причиной возникновения этого исключения является блокировка команд Selenium WebDriver, вызванная появлением модальных окон/всплывающих окон на странице.

  • Неожиданное исключение с именем

Это исключение Selenium возникает в случаях, когда класс поддержки не может найти ожидаемый веб-элемент.

  • Исключение неизвестного метода

Это одно из распространенных исключений Selenium, возникающих, когда запрошенная команда может соответствовать известному URL-адресу, но не может соответствовать методу для этого URL-адреса. Чтобы обработать это исключение, вы должны проверить, является ли метод, передаваемый вместе с URL-адресом, допустимым или нет.

  • Исключение WebDriverException

Это базовое исключение WebDriver, возникающее из-за несовместимости привязки Selenium WebDriver и целевого веб-браузера.

Чтобы обработать это исключение, вам следует загрузить библиотеку Selenium WebDriver, совместимую с соответствующим веб-браузером.

Исключения Селена В Java

Некоторые исключения Selenium специфичны для конкретного языка программирования для автоматизации тестирования. Наряду с распространенными исключениями в Selenium, которые были рассмотрены в предыдущем разделе, ниже приведены исключения Selenium, характерные для языка Java:

  • Исключение ConnectionClosedException

Это исключение возникает при потере соединения с веб-драйвером Selenium.

  • Обработчик ошибок. Исключение неизвестного сервера

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

  • Исключение JSONException

Это исключение возникает, когда вы можете получить возможности сеанса там, где сеанс не создан.

  • Исключение NoSuchSessionException

Это исключение Selenium возникает при вызове команды после выполнения WebDriver.quit(). Поскольку экземпляр WebDriver больше не существует, любая операция с этим конкретным экземпляром WebDriver возвращает это исключение.

  • Исключение NotFoundException

Это исключение возникает, когда элемент в DOM отсутствует.

  • Исключение ScriptTimeoutException

Он выдается, когда выполнение асинхронного скрипта не завершается в течение заданного срока.

  • Необработанное исключение alertexception

Это исключение Seleniumexception является подклассом исключения WebDriver. Он выдается, когда WebDriver не может выполнить операцию оповещения, даже если есть предупреждение.

  • Исключение недоступных бровей

Исключение UnreachableBrowserException указывает на то, что существует проблема связи с веб-браузером, которым управляет код тестирования автоматизации. Это также может быть связано с проблемами при взаимодействии с сервером Selenium.

Это может произойти, если адрес сервера удаленного Selenium WebDriver или Selenium grid неверен. Существует также вероятность того, что экземпляр браузера умер в разгар цикла автоматизации тестирования Selenium.

  • Исключение неподдерживаемой команды

Это исключение возникает, когда команда, отправленная удаленным Selenium WebDriver, недействительна.

  • Исключение NoSuchContextException

Это исключение возникает при мобильном тестировании и генерируется с учетом контекста.контекст(строка)

  • Исключение NotConnectedException

Это исключение Selenium возникает, когда попытка подключения к определенному хосту или удаленной сетке Selenium завершается неудачей после попытки подключения в течение определенного периода времени.

  • Исключение SeleniumException

Как следует из названия, исключение Selenium возникает при сбое команды Selenium.

  • Исключение UnableToCreateProfileException

Исключение UnableToCreateProfileException возникает, когда браузер, в котором должна выполняться автоматизация тестирования Selenium, открывается с каким-либо пользовательским профилем, но у веб-драйвера или браузера возникают проблемы с поддержкой этого профиля.

Чтобы обработать это исключение, рекомендуется проверить профили, поддерживаемые установленной версией Selenium WebDriver, а также веб-браузером.

  • Проверка URL-адресов. Исключение тайм-аута

Это исключение возникает, когда браузер не может открыть тестируемый URL-адрес после попытки в течение определенного времени.

Чтобы обработать это исключение Seleniumexception, URL-адрес должен быть проверен на правильность перед попыткой открытия в браузере (в процессе тестирования).

Исключения Селена В C

Исключениями Selenium, специфичными для C#, являются:

  • Исключение DriverServiceNotFoundException

Исключения в классе DriverServiceNotFoundException возникают, когда элемент, на котором выполняется автоматическое тестирование браузера , не отображается. Чтобы обработать это исключение, вы можете дождаться полной загрузки страницы и выполнить команду Selenium WebDriver только после подтверждения наличия видимости веб-элемента.

  • Исключение WebDriverTimeoutException

Класс WebDriverTimeoutException представляет исключения, которые возникают при возникновении ошибки при выполнении действий.

Бонусный балл , здесь мы даем номер рифмы

  • Исключение XPathLookupException

Исключение Selenium, которое возникает при возникновении ошибки в процессе поиска XPath.

Обработка исключений Селена

Способы обработки исключений Selenium различаются в зависимости от языка программирования. Однако суть в том, что исключения Selenium следует обрабатывать, поскольку исключение предоставляет чрезвычайно важную информацию.

Ниже приведена краткая информация о том, как обрабатываются исключения Selenium в популярных языках программирования:

Python – Если вы используете Python для автоматического тестирования браузера, классы исключений доступны в selenium.common.исключения, которые следует импортировать перед использованием любых команд из этого пакета.

Исключения обрабатываются с помощью блока try…except, где блок try позволяет проверить код на наличие ошибок, блок except помогает обработать ошибку, а необязательный блок finally будет выполняться независимо от того, вызывает ли блок try ошибку или нет.

Java – Исключения Selenium обрабатываются в Java с использованием метода try-catch. Блок try является началом блока, а блок catch содержит реализацию для устранения исключения. Блок catch помещается в конце блока try. Как и в Python, вы также можете использовать ключевое слово finally для создания блока кода, который выполняется независимо от того, возникает исключение или нет.

C# – Как и в Java, исключения Selenium обрабатываются с помощью оператора try-catch. Блок try содержит код, который может вызвать исключение. Код в блоке try выполняется до тех пор, пока код не будет успешно выполнен или не возникнет исключение. Блок catch содержит обработчики для различных исключений.

в целом

Исключения довольно распространены в разработке, но с ними нужно обращаться осторожно. Важно знать о различных исключениях Selenium, поскольку это помогает в разработке более надежных автоматизированных сценариев тестирования браузера.

Обработка исключений в Selenium test automation играет важную роль в выявлении проблем кроссбраузерной совместимости, относящихся к конкретному браузеру/платформе/устройству.

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

Счастливого Испытания ☺

Оригинал: “https://dev.to/himanshusheth004/49-most-common-selenium-exceptions-for-automation-testing-1dag”