Какие exceptions может бросить Selenium? Что они означают и как их обрабатывать?

🔹 Основные исключения Selenium

Exception
Когда возникает
Как обрабатывать

NoSuchElementException

Элемент не найден на странице

Проверять локатор, использовать WebDriverWait

TimeoutException

Явное ожидание (WebDriverWait) не дождалось элемента/условия

Увеличить таймаут, проверить условие

NoSuchWindowException

Окно/вкладка не существует или уже закрыта

Проверять доступные окна driver.window_handles

NoSuchFrameException

iframe не найден

Проверить наличие фрейма перед switch_to.frame()

ElementNotVisibleException (устаревший, теперь чаще ElementNotInteractableException)

Элемент есть, но не виден

Использовать WebDriverWait с visibility_of_element_located

ElementNotInteractableException

Элемент найден, но с ним нельзя взаимодействовать (например, скрыт)

Ждать, пока элемент станет кликабельным

StaleElementReferenceException

Элемент найден ранее, но DOM обновился (например, после перезагрузки)

Находить элемент заново перед действием

InvalidSelectorException

XPath или CSS некорректный

Исправить локатор

WebDriverException

Общая ошибка работы WebDriver (например, нет соединения с драйвером)

Проверить драйвер/браузер

JavascriptException

Ошибка при выполнении execute_script

Проверить JS-код

MoveTargetOutOfBoundsException

Попытка переместить курсор за пределы страницы

Проверить координаты

NoAlertPresentException

Попытка переключиться на alert, которого нет

Проверять WebDriverWait(alert_is_present())

SessionNotCreatedException

Драйвер не может создать сессию (часто из-за несовпадения версий ChromeDriver/браузера)

Обновить драйвер/браузер

ElementClickInterceptedException

При клике другой элемент перекрывает нужный

Ждать, пока элемент не освободится


🔹 Примеры обработки исключений в Python

1. Простая обработка


2. С явным ожиданием


3. Отлов нескольких исключений


📌 Итог: Selenium кидает десятки разных исключений, но на практике самые частые — это NoSuchElementException, TimeoutException, StaleElementReferenceException и ElementNotInteractableException. Обрабатывать их лучше через try/except и явные ожидания (WebDriverWait).

Last updated

Was this helpful?