🔖 Справочник: продвинутый Selenium — шпаргалка

← К оглавлению урока

⚡ Быстрая шпаргалка

# 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_handleHandle текущей активной вкладки
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+)