⚡ Быстрая шпаргалка
# Alert
alert = driver.switch_to.alert
alert.text; alert.accept(); alert.dismiss(); alert.send_keys("...")
# Вкладки
tabs = driver.window_handles # список всех
driver.switch_to.window(tabs[1]) # переключиться
driver.close() # закрыть текущую
# ActionChains
from selenium.webdriver.common.action_chains import ActionChains
ActionChains(driver).move_to_element(el).perform() # hover
ActionChains(driver).drag_and_drop(src, tgt).perform() # drag&drop
# iframe
driver.switch_to.frame(iframe_element)
driver.switch_to.default_content() # выход
# File upload
file_input.send_keys(os.path.abspath("file.txt"))
Alert
| Команда |
Описание |
driver.switch_to.alert | Переключиться на активный Alert |
alert.text | Получить текст сообщения Alert |
alert.accept() | Нажать OK (для alert, confirm, prompt) |
alert.dismiss() | Нажать Отмена (для confirm, prompt) |
alert.send_keys("текст") | Ввести текст в prompt-диалог |
EC.alert_is_present() | Дождаться появления Alert (рекомендуется) |
Вкладки и окна
| Команда |
Описание |
driver.window_handles | Список handle всех открытых вкладок/окон |
driver.current_window_handle | Handle текущей активной вкладки |
driver.switch_to.window(handle) | Переключиться на вкладку по handle |
driver.close() | Закрыть текущую вкладку |
driver.quit() | Закрыть весь браузер (все вкладки) |
driver.execute_script("window.open(url, '_blank');") | Открыть новую вкладку через JS |
ActionChains
| Команда |
Описание |
from selenium.webdriver.common.action_chains import ActionChains | Импорт |
ActionChains(driver) | Создать объект цепочки действий |
.move_to_element(element) | Навести курсор (hover) |
.click(element) | Клик по элементу |
.double_click(element) | Двойной клик |
.drag_and_drop(source, target) | Перетащить source на target |
.perform() | Выполнить цепочку действий (обязательно!) |
iframe
| Команда |
Описание |
driver.switch_to.frame(element) | Переключиться в iframe по WebElement |
driver.switch_to.frame("name_or_id") | Переключиться по имени/id iframe |
driver.switch_to.frame(0) | Переключиться по индексу (0 — первый) |
driver.switch_to.default_content() | Вернуться в основной контекст страницы |
driver.switch_to.parent_frame() | Перейти на уровень выше (при вложенных iframe) |
EC.frame_to_be_available_and_switch_to_it(locator) | Дождаться iframe и переключиться (EC) |
Загрузка файла
| Команда |
Описание |
driver.find_element(By.ID, "file-input") | Найти <input type="file"> |
file_input.send_keys(path) | Передать абсолютный путь к файлу |
os.path.abspath("file.txt") | Получить абсолютный путь из относительного |
str(Path("file.txt").resolve()) | Альтернатива через pathlib (Python 3.4+) |