Дождаться появления Alert и переключиться (рекомендуется)
все
alert.text
Получить текст диалогового окна
все
alert.accept()
Нажать «OK»
все
alert.dismiss()
Нажать «Cancel» / закрыть
confirm, prompt
alert.send_keys("текст")
Ввести текст в поле ввода
только prompt
Импорт
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
# test_tabs.py
original = driver.current_window_handle
# ... действие, открывающее новую вкладку ...
new_tab = [h for h in driver.window_handles if h != original][0]
driver.switch_to.window(new_tab)
ActionChains
Импорт
from selenium.webdriver.common.action_chains import ActionChains
Метод
Описание
ActionChains(driver)
Создать объект для цепочки действий
.move_to_element(element)
Навести курсор на элемент (hover)
.move_to_element_with_offset(el, x, y)
Навести курсор со смещением от элемента
.click(element)
Кликнуть по элементу
.double_click(element)
Двойной клик по элементу
.context_click(element)
Правый клик (контекстное меню)
.drag_and_drop(source, target)
Перетащить source на target
.drag_and_drop_by_offset(source, x, y)
Перетащить source на смещение (x, y) пикселей
.click_and_hold(element)
Нажать и удерживать кнопку мыши
.release(element)
Отпустить кнопку мыши
.send_keys(keys)
Нажать клавиши на клавиатуре
.perform()
Выполнить всю накопленную цепочку действий
.reset_actions()
Сбросить цепочку без выполнения
Фреймы (switch_to.frame)
Метод
Описание
driver.switch_to.frame(element)
Переключиться в iframe по WebElement (рекомендуется)
driver.switch_to.frame("name")
Переключиться по атрибуту name или id
driver.switch_to.frame(0)
Переключиться по индексу (0 — первый фрейм)
driver.switch_to.default_content()
Вернуться к основной странице (обязательно после работы с iframe)
driver.switch_to.parent_frame()
Вернуться на один уровень вверх (при вложенных iframe)
Загрузка файлов
Операция
Код
Найти input[type=file]
file_input = driver.find_element(By.ID, "file")
Передать путь к файлу
file_input.send_keys(os.path.abspath("file.txt"))
Создать временный файл
with open("test.txt", "w") as f: f.write("data")
Удалить временный файл
os.remove(file_path)
Полный шаблон загрузки файла
# test_upload.py
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com/upload")
# Создаём тестовый файл
file_path = os.path.abspath("test_upload.txt")
with open(file_path, "w") as f:
f.write("test content")
# Загружаем
file_input = driver.find_element(By.CSS_SELECTOR, "input[type='file']")
file_input.send_keys(file_path)
# Отправляем форму
driver.find_element(By.ID, "submit").click()
# Чистим за собой
os.remove(file_path)