Playwright — не «устаревший vs новый» (Selenium актуален), а другой подход. Сравним один и тот же сценарий: открыть страницу, кликнуть кнопку, проверить текст.
Сравнение 1: настройка и первый тест
🟡 Selenium (изучали в курсе)
# test_login.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def test_login():
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("https://example.com/login")
btn = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "submit"))
)
btn.click()
msg = driver.find_element(By.CSS_SELECTOR, ".welcome")
assert msg.text == "Привет!"
driver.quit()
🟢 Playwright (то же самое)
# test_login.py
from playwright.sync_api import Page, expect
def test_login(page: Page):
page.goto("https://example.com/login")
# авто-ожидание кликабельности встроено
page.get_by_role("button", name="Submit").click()
# expect сам ждёт нужный текст
expect(page.locator(".welcome")).to_have_text("Привет!")
- Нет ручного создания/закрытия драйвера — фикстура
pageделает это сама. - Нет
WebDriverWait— ожидание встроено вclick()иexpect(). - Меньше импортов и шума, фокус на сценарии.
Сравнение 2: установка браузеров
🟡 Selenium
# Selenium 4: Selenium Manager сам ищет драйвер,
# но браузер (Chrome) должен быть установлен в системе
pip install selenium
🟢 Playwright
# Браузеры скачивает сам Playwright —
# изолированные сборки Chromium/Firefox/WebKit
pip install pytest-playwright
playwright install
⚠️ Это сравнение — для понимания подхода, а не «что лучше». Оба инструмента живые; выбор зависит от команды и проекта.