Как обрабатывать браузерные сообщения (alerts)?
В веб-приложениях нередко появляются браузерные диалоговые окна:
alert()
– простое сообщениеconfirm()
– сообщение с кнопками OK / Cancelprompt()
– сообщение с полем ввода
В Selenium они обрабатываются через switch_to.alert
.
🔹 Работа с 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
confirm
alert = driver.switch_to.alert
print(alert.text)
alert.accept() # Нажимаем "OK"
# alert.dismiss() # Нажимаем "Cancel"
🔹 Работа с prompt
prompt
alert = 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?