Винятки 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)). Статті про роботу з вікнами: