Как обрабатывать браузерные сообщения (alerts)?
В веб-приложениях нередко появляются браузерные диалоговые окна:
alert()– простое сообщениеconfirm()– сообщение с кнопками OK / Cancelprompt()– сообщение с полем ввода
В Selenium они обрабатываются через switch_to.alert.
🔹 Работа с alert
alertfrom 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
confirmalert = driver.switch_to.alert
print(alert.text)
alert.accept()   # Нажимаем "OK"
# alert.dismiss()  # Нажимаем "Cancel"🔹 Работа с prompt
promptalert = driver.switch_to.alert
print(alert.text)
alert.send_keys("Test input")  # Вводим текст
alert.accept()                 # Подтверждаем🔹 Особенности
Если alert открыт, пока вы кликаете другой элемент — Selenium выдаст
UnhandledAlertException. Поэтому всегда сначала обрабатываем alert.Для ожидания появления alert лучше использовать Explicit Wait:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 10).until(EC.alert_is_present())
alert = driver.switch_to.alert
print(alert.text)
alert.accept()✅ Таким образом, через switch_to.alert можно полностью контролировать браузерные сообщения.
PreviousЧто такое iframe и как с ним работать в Selenium?NextКак взаимодействовать с cookies, LocalStorage и SessionStorage?
Last updated
Was this helpful?