Що таке винятки?
Винятком є помилкою , яка відбувається під час виконання програми. Однак під час запуску програми мови програмування генерують виняток, який слід обробляти, щоб уникнути збою програми.
Виняток вказує на те, що, хоча подія може відбутися, подія такого типу трапляється нечасто. Коли метод не може обробити виняток, він переходить до функції виклику. Зрештою, коли виняток виключається з основної функції, програма різко припиняється.
У цьому підручнику ви дізнаєтесь:
- Що таке винятки?
- Винятки у веб-драйвері Selenium
- Обробка винятків із селеном
- Методи відображення винятків
Поширені винятки у веб-драйвері Selenium
Назва винятку | Опис |
ElementNotVisibleException | Цей тип винятку селену виникає, коли існуючий елемент у 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 | Ця проблема виникає під час виконання JavaScript, наданого користувачем. |
JsonException | Це відбувається, коли ви дозволяєте собі отримати сеанс, коли сеанс не створений. |
NoSuchAttributeException | Цей вид винятків виникає, коли атрибут елемента не вдається знайти. |
MoveTargetOutOfBoundsException | Це має місце, якщо ціль, надана методології ActionChains move (), є недійсною. Наприклад, поза документом. |
NoSuchContextException | ContextAware проводить тестування мобільних пристроїв. |
NoSuchCookieException | Цей виняток виникає, коли не знайдено файлів cookie, що відповідають вказаному імені шляху для всіх пов’язаних файлів cookie документа, що переглядається в даний момент. |
NotFoundException | Цей виняток є підкласом WebDriverException. Це станеться, коли елемент на DOM не існує. |
RemoteDriverServerException | Цей виняток Selenium видається, коли сервер не реагує через проблему з неналежними описаними можливостями. |
Знімок екрана Виняток | Зняти екран неможливо. |
SessionNotCreatedException | Це трапляється, коли новий сеанс не вдалося створити успішно. |
UnableToSetCookieException | Це відбувається, якщо драйвер не може встановити файл cookie. |
UnexpectedTagNameException | Трапляється, якщо клас підтримки не отримав веб-елемент, як очікувалося. |
UnhandledAlertException | Це очікування виникає, коли є попередження, але WebDriver не може виконати операцію попередження. |
UnexpectedAlertPresentException | Це відбувається, коли з’являється несподіване попередження. |
UnknownMethodException | Цей виняток трапляється, коли запитувана команда співпадає з відомою URL-адресою, але не збігається з методологією для певної URL-адреси. |
UnreachableBrowserException | Цей виняток виникає лише тоді, коли браузер не може бути відкритий або вийшов з ладу з якоїсь причини. |
НепідтримуванийCommandException | Це відбувається, коли віддалений WebDriver не надсилає дійсні команди, як очікувалося. |
Обробка винятків із селеном
Ось деякі важливі стандарти, за допомогою яких ви можете обробляти винятки в Selenium WebDriver:
Try-catch : Цей метод може ловити винятки, що використовує комбінацію ключових слів try and catch. Команда try вказує на початок блоку, а Catch розміщується в кінці блоку try, що допомагає вирішити виняток.
спробуй{// Код} catch (виняток e) {// Код для обробки виключення}
- Кілька блоків catch : Існують різні типи винятків, і ви можете очікувати більше одного винятку від одного блоку коду. Кілька ловів допомагають вам обробляти кожен тип винятків окремо за допомогою окремого блоку коду. Він може використовуватися для більш ніж двох блоків лову, і немає обмежень щодо кількості блоків лову.
спробуй{// Код} catch (ExceptionType1 e1) {// Код обробки винятків 1} catch (ExceptionType2 e2) {// Код для обробки винятків 2}
- Throw : Коли потрібно створити виняток, ключове слово Throw використовується для викиду Exception для обробки під час виконання. Коли ви створюєте виняток, не обробляючи його, тоді їм потрібно використовувати ключове слово Throw.
public static void anyFunction () викидає виняток {спробуй {// напишіть тут свій код} Улов (виняток b) {// Робіть все, що хочете виконати// Повернути виняток назад до системикидок (б);}}
- Кілька винятків : Ви можете згадувати різні винятки у пункті броски.
public static void anyFunction () кидає ExceptionType1, ExceptionType2 {спробуй {// напишіть тут свій код} catch (ExceptionType1 e1) {// Код для обробки винятків 1} catch (ExceptionType1 e2) {// Код для обробки винятків 2}
- Нарешті : Ключове слово Final використовується для створення блоку коду під блоком try. Це остаточний код, який допомагає вам виконувати незалежно від виникнення винятку
спробуй {// Код} catch (ExceptionType1 e1) {// Блок лову} catch (ExceptionType2 e2) {// Блок лову} catch (ExceptionType3 e3) {// Блок лову} нарешті {// Блок нарешті завжди виконується.}
Методи відображення винятків
Ви також можете використовувати такі методи для відображення інформації про винятки:
- printStackTrace () : Ця функція друкує трасування стека, ім'я винятку та інший корисний опис.
- toString () : Ця функція повертає текстове повідомлення з описом імені та опису виключення.
- getMessage () : Допомагає відобразити опис винятку.
Короткий зміст:
- Винятком є помилка, яка трапляється під час виконання програми.
- Try-catch: Цей метод може ловити винятки, що використовує комбінацію ключових слів try and catch.
- Кілька ловів допомагають вам обробляти кожен тип винятків окремо за допомогою окремого блоку коду.
- Ключове слово Throw використовується для викиду Exception для обробки під час виконання.
- printStackTrace (): Ця функція друкує трасування стека, ім'я винятку та інший корисний опис
- toString (): Ця функція повертає текстове повідомлення з описом імені та опису виключення.
- getMessage (): Допомагає відобразити опис винятку.