🏠 Домашнее задание

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

⚡ Что сдать

  • Тест логина и работы с каталогом (saucedemo)
  • Все локаторы — user-facing; проверки — через expect
  • Вывод pytest (passed)

Окружение

pip install pytest-playwright
playwright install

Задание

Сайт: https://www.saucedemo.com/. Напишите test_shop.py:

  1. test_login — залогиниться, проверить переход на /inventory.html и видимость «Products».
  2. test_add_two — добавить 2 разных товара, проверить, что бейдж корзины = «2».
  3. test_sorting (со звёздочкой) — выбрать сортировку «Price (low to high)» в select и проверить, что первая цена ≤ последней.

Каркас

# test_shop.py
from playwright.sync_api import Page, expect

def login(page: Page):
    page.goto("https://www.saucedemo.com/")
    page.get_by_placeholder("Username").fill("standard_user")
    page.get_by_placeholder("Password").fill("secret_sauce")
    page.get_by_role("button", name="Login").click()

def test_login(page: Page):
    login(page)
    expect(page).to_have_url("https://www.saucedemo.com/inventory.html")
    expect(page.get_by_text("Products")).to_be_visible()

def test_add_two(page: Page):
    login(page)
    items = page.locator(".inventory_item")
    items.nth(0).get_by_role("button", name="Add to cart").click()
    items.nth(1).get_by_role("button", name="Add to cart").click()
    expect(page.locator(".shopping_cart_badge")).to_have_text("2")

Проверка

  • pytest -v — все passed.
  • Посмотреть глазами: pytest --headed --slowmo 400.

Связь с разделами