⚖️ Старый vs Новый — Selenium 3 → Selenium 4
⚡ Главные отличия
- Selenium 3: нужен
executable_path=или webdriver-manager вручную. - Selenium 4:
webdriver.Chrome()— Selenium Manager сам управляет драйвером. - Firefox в лекции использует
executable_path=GeckoDriverManager().install()— это Selenium 3 стиль. В Selenium 4 — простоwebdriver.Firefox().
Примеры из лекции (конспект Summary Session 2) написаны в стиле Selenium 3 с явным использованием
webdriver-manager и Service. Ниже показано, что было в лекции и как это выглядит в современном Selenium 4.
1. Запуск Chrome
Из лекции (старое — Selenium 3 / webdriver-manager)
# Из конспекта Summary Session 2
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())
)
Современное (Selenium 4)
from selenium import webdriver
driver = webdriver.Chrome() # Selenium Manager находит драйвер автоматически
Разница: в Selenium 4 встроен Selenium Manager — отдельная установка webdriver-manager и явный Service() больше не нужны. Selenium Manager сам определяет версию Chrome и скачивает подходящий ChromeDriver.
2. Запуск Firefox
Из лекции (старое)
# Из конспекта Summary Session 2
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())
)
Современное (Selenium 4)
from selenium import webdriver
driver = webdriver.Firefox() # Selenium Manager управляет GeckoDriver автоматически
3. Параметр executable_path (полностью устарел)
Из лекции (старое)
# Из конспекта Summary Session 2 — указание пути к драйверу напрямую
driver_path = "/Users/user/Downloads/chromedriver-mac-arm64/chromedriver"
service = Service(driver_path)
driver = webdriver.Chrome(service=service)
Ещё старее (Selenium 3 без Service)
# Selenium 3 — параметр executable_path устарён и удалён в Selenium 4
driver = webdriver.Chrome(executable_path="path/to/chromedriver") # УСТАРЕЛО
Современное (Selenium 4)
# Не нужно указывать никакие пути
driver = webdriver.Chrome() # Selenium Manager всё делает сам
4. Решение домашнего задания: Firefox в старом и новом стиле
Из лекции (старое)
# Из конспекта Summary Session 2 — решение ДЗ
from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager
@pytest.fixture
def setup_browser():
options = webdriver.FirefoxOptions()
driver = webdriver.Firefox(
executable_path=GeckoDriverManager().install(), # УСТАРЕЛО
options=options
)
yield driver
driver.quit()
Современное (Selenium 4)
import pytest
from selenium import webdriver
@pytest.fixture
def setup_browser():
options = webdriver.FirefoxOptions()
driver = webdriver.Firefox(options=options) # Selenium Manager управляет GeckoDriver
driver.maximize_window()
yield driver
driver.quit()
Итоговая таблица
| Паттерн | Selenium 3 (из лекции) | Selenium 4 (современный) |
|---|---|---|
| Запуск Chrome | webdriver.Chrome(service=ChromeService(ChromeDriverManager().install())) |
webdriver.Chrome() |
| Запуск Firefox | webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install())) |
webdriver.Firefox() |
| Путь к драйверу | executable_path="..." или Service(path) |
Не нужен — Selenium Manager |
| Управление драйвером | Вручную через webdriver-manager | Автоматически через Selenium Manager |