Винятки Selenium
Основні винятки WebDriver
Цей розділ стосується виключно автоматизованого тестування, яке передбачає знання однієї з сучасних високорівневих мов програмування. У межах нашого курсу він подається лише в ознайомлювальному форматі. Цей список може стати вам у пригоді під час виконання практичного завдання рівня. Далі наведемо список найчастіше вживаних винятків WebDriver:
- ElementNotVisibleException — виникнення цього винятку означає, що, хоча елемент присутній у DOM, він невидимий, і тому взаємодіяти з ним неможливо.
- IllegalLocatorException — виникає, коли By не може обробити передані йому аргументи. Найпоширеніший випадок виникнення — використання складеного імені класу в By.className().
- StaleElementReferenceException — виникає, коли посилання на елемент, до якого йде звернення, більше не дійсне.
- MoveTargetOutOfBoundsException — викликається, якщо в метод moveToElement(WebElement toElement) передано елемент, який перебуває за межами екрана, а також у деяких випадках, коли драйвер не може потрапити по рухомому елементу (наприклад, коли сторінка перебуває в процесі скролінгу (jquery) — варто дочекатися його завершення й лише після цього звертатися до елементів)
- SessionNotCreatedException — цей виняток означає, що сесію не може бути створено. Генерується під час використання ‘requiredCapabilities’ для віддаленого запуску, якщо браузер із «потрібними» властивостями не знайдено.
- TimeoutException — викликається, коли команда не завершується в достатній проміжок часу. Проміжок указується параметром функції або є встановленим за замовчуванням.
- UnhandledAlertException — виникає за появи неочікуваних модальних діалогових вікон.
- UnsupportedCommandException — виняток означає, що команда, яку використовує віддалений вебдрайвер, не підтримується.
- InvalidCookieDomainException — викликається під час спроби додати cookie для домену, що відрізняється від поточного.
- UnableToSetCookieException — генерується, коли драйвер із будь-яких причин не може встановити cookie.
Винятки групи «Not Found»
- NoAlertPresentException — генерується під час спроби передати керування діалоговому вікну, якого наразі немає.
- NoSuchElementException — викликається методом findElement(By by), якщо елемент із заданим селектором не знайдено на сторінці.
- InvalidSelectorException — виняток генерується методом findElement(By by), коли заданий селектор пошуку не повертає WebElement. Наразі цей виняток виникає лише під час використання xpath — коли у виразі xpath є синтаксичні помилки або вираз не вказує на WebElement (наприклад, «count(.//span)»).
- NoSuchFrameException — виникає під час роботи методів WebDriver.switchTo().frame(int frameIndex) і WebDriver.switchTo().frame(String frameName), якщо фрейм із заданим параметром не знайдено. Докладніше про роботу з фреймами написано в цій статті.
- NoSuchWindowException — виникає за відсутності вікна із заданим іменем (WebDriver.switchTo().window(String windowName)). Статті про роботу з вікнами:

