Как обрабатывать браузерные сообщения (alerts)?

В веб-приложениях нередко появляются браузерные диалоговые окна:

  • alert() – простое сообщение

  • confirm() – сообщение с кнопками OK / Cancel

  • prompt() – сообщение с полем ввода

В Selenium они обрабатываются через switch_to.alert.


🔹 Работа с alert

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://example.com")

# Ждём, пока появится alert
time.sleep(2)

# Переключаемся на alert
alert = driver.switch_to.alert

print(alert.text)  # Получаем текст alert
alert.accept()     # Нажимаем "OK"

🔹 Работа с confirm


🔹 Работа с prompt


🔹 Особенности

  1. Если alert открыт, пока вы кликаете другой элемент — Selenium выдаст UnhandledAlertException. Поэтому всегда сначала обрабатываем alert.

  2. Для ожидания появления alert лучше использовать Explicit Wait:


✅ Таким образом, через switch_to.alert можно полностью контролировать браузерные сообщения.

Last updated

Was this helpful?