⚖️ Selenium vs Playwright: E2E

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

⚡ Главное

  • E2E на Playwright короче: нет ручных ожиданий и драйвера.
  • Авторизация через storage_state заменяет логин в каждом тесте.
  • Проверки expect устойчивее к таймингам перехода между страницами.

E2E-сценарий заказа: фрагмент

🟡 Selenium

wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable(
    (By.ID, "add-to-cart-sauce-labs-backpack"))).click()

badge = wait.until(EC.visibility_of_element_located(
    (By.CLASS_NAME, "shopping_cart_badge")))
assert badge.text == "1"

driver.find_element(By.CLASS_NAME, "shopping_cart_link").click()
# ... ещё ожидания на каждый переход ...

🟢 Playwright

inventory.add_to_cart("Sauce Labs Backpack")
expect(inventory.cart_badge).to_have_text("1")

inventory.go_to_cart()
expect(cart.items).to_have_count(1)
# переходы и ожидания — встроены

Авторизация

🟡 Selenium

# обычно логин-метод вызывается
# в начале каждого теста (или в setup)
def setup_method(self):
    self.driver.get(URL)
    LoginPage(self.driver).login(...)

🟢 Playwright

# логин один раз -> storage_state,
# тесты стартуют уже залогиненными
# (см. conftest.py в примерах)
⚠️ Это сравнение подходов, а не «что лучше». Выбор инструмента — за командой.