🔖 Справочник: методы 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() она:
- Определяет версию установленного Chrome
- Проверяет наличие совместимого ChromeDriver в кэше
- При необходимости скачивает ChromeDriver с официального CDN
- Передаёт путь к ChromeDriver в
webdriver.Chrome()
Аналогично для Firefox (GeckoDriver) и Edge (EdgeDriver).