🔖 Справочник: методы Selenium WebDriver

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

⚡ Ключевые команды Selenium

pip install selenium              # установка
pip install webdriver-manager    # менеджер драйверов

driver = webdriver.Chrome()      # Selenium Manager — автоматически
driver.get("https://example.com")
driver.title          # заголовок страницы
driver.current_url    # текущий URL
driver.quit()         # закрыть браузер

Установка

# Установка Selenium (Windows/PowerShell)
pip install selenium

# Если нужен webdriver-manager (старый подход или явный контроль)
pip install webdriver-manager

# Проверка версии
python -c "import selenium; print(selenium.__version__)"

Инициализация драйвера

Современный способ — Selenium Manager (рекомендуется, Selenium 4.6+)

# open_browser.py
from selenium import webdriver

# Selenium Manager автоматически скачает и настроит chromedriver
driver = webdriver.Chrome()
Начиная с Selenium 4.6 встроенный Selenium Manager автоматически определяет версию Chrome и скачивает совместимый chromedriver. Никаких ручных загрузок не нужно.

Через webdriver-manager (явный контроль)

# open_browser.py
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

Через Service с указанием пути (если ChromeDriver уже скачан вручную)

# open_browser.py
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service("C:/WebDrivers/chromedriver.exe")
driver = webdriver.Chrome(service=service)

Firefox через webdriver-manager

# open_browser_firefox.py
from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

Методы навигации

Метод Описание
driver.get(url) Открыть страницу по URL. Ждёт полной загрузки страницы.
driver.back() Вернуться на предыдущую страницу (как кнопка «Назад»)
driver.forward() Перейти на следующую страницу в истории
driver.refresh() Обновить текущую страницу (F5)

Свойства драйвера

Свойство Описание
driver.title Заголовок текущей вкладки (<title>)
driver.current_url URL текущей страницы
driver.page_source HTML-исходник текущей страницы

Управление окном браузера

# Размер окна
driver.set_window_size(1280, 720)   # ширина × высота в пикселях

# Развернуть на весь экран
driver.maximize_window()

# Полноэкранный режим (F11)
driver.fullscreen_window()

# Свернуть в панель задач
driver.minimize_window()

Скриншот

# Сохранить скриншот в текущую папку
driver.save_screenshot("./screenshot.png")

# Сохранить в абсолютный путь (Windows)
driver.save_screenshot("C:/Users/username/screenshots/screenshot.png")

# Проверить текущую директорию
import os
print(os.getcwd())
Метод поддерживает форматы .png и .jpeg. Используйте .png для наилучшего качества.

Поиск элементов (By.*)

from selenium.webdriver.common.by import By

# Поиск одного элемента
element = driver.find_element(By.ID, "my-id")
element = driver.find_element(By.NAME, "username")
element = driver.find_element(By.CLASS_NAME, "btn-primary")
element = driver.find_element(By.TAG_NAME, "h1")
element = driver.find_element(By.LINK_TEXT, "О нас")
element = driver.find_element(By.CSS_SELECTOR, ".nav > a")
element = driver.find_element(By.XPATH, "//button[@type='submit']")

# Взаимодействие с элементом
element.click()
element.send_keys("текст")
text = element.text

Закрытие браузера

driver.quit()   # закрыть ВСЕ окна и завершить сессию (рекомендуется)
driver.close()  # закрыть только текущую вкладку (сессия остаётся)
Всегда используйте driver.quit() в блоке finally или через pytest-фикстуру — иначе процесс браузера остаётся в памяти.

Шаблон с try/finally

# open_browser.py
from selenium import webdriver

driver = webdriver.Chrome()
try:
    driver.get("https://itcareerhub.de/ru")
    print(driver.title)
finally:
    driver.quit()

Pytest-фикстура (рекомендуемый паттерн)

# conftest.py
import pytest
from selenium import webdriver

@pytest.fixture
def driver():
    driver = webdriver.Chrome()
    driver.maximize_window()
    yield driver          # передать драйвер в тест
    driver.quit()         # выполнится после теста всегда

Selenium Manager (Selenium 4.6+)

Selenium Manager — встроенная утилита командной строки в Selenium 4.6+. При создании webdriver.Chrome() она:

  1. Определяет версию установленного Chrome
  2. Проверяет наличие совместимого ChromeDriver в кэше
  3. При необходимости скачивает ChromeDriver с официального CDN
  4. Передаёт путь к ChromeDriver в webdriver.Chrome()

Аналогично для Firefox (GeckoDriver) и Edge (EdgeDriver).