Skip to content
Back to skills

E2e Playwright

ASecurity

E2E на Playwright — селекторы (getByRole > testid > css), fixtures/auth-state (storageState), web-first assertions без sleep, trace/screenshot при падении, параллельность/шардинг, CI-конфиг, Page Object. Use при написании, ревью или стабилизации браузерных e2e-тестов.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
testingapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add Vitammiin/agent-vorcl-flow --skill e2e-playwright --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of E2e Playwright?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for E2e Playwright
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vitammiin-e2e-playwright/badge)](https://www.skillsdirectory.com/skills/vitammiin-e2e-playwright)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: e2e-playwright
description: "E2E на Playwright — селекторы (getByRole > testid > css), fixtures/auth-state (storageState), web-first assertions без sleep, trace/screenshot при падении, параллельность/шардинг, CI-конфиг, Page Object. Use при написании, ревью или стабилизации браузерных e2e-тестов."
---

# Навык: Playwright E2E

E2E — только **критический путь пользователя** в реальном браузере; не дублируй unit/integration.

## Селекторы (по убыванию)
`getByRole('button', { name: … })` (как видит пользователь, заодно a11y) > `getByLabel`/`getByPlaceholder`/`getByText` > `getByTestId` (нет роли/текст нестабилен) > CSS/XPath (последний резерв).

## Ожидания
Только web-first assertions: `await expect(locator).toBeVisible()/toHaveText()/toHaveURL()` — авто-ретраятся. НИКАКИХ `waitForTimeout`/sleep (главный источник flaky). Действия (`click`/`fill`) сами ждут actionability — не оборачивай ручными wait.

## Auth
Логин один раз в setup-проекте → `page.context().storageState({ path: 'playwright/.auth/user.json' })`; рабочие проекты подключают его через `use.storageState` + `dependencies: ['setup']`. Роли пользователей — отдельные state-файлы + fixtures. Не логинься через UI в каждом тесте.

## Диагностика
`use: { trace: 'on-first-retry', screenshot: 'only-on-failure', video: 'retain-on-failure' }`; смотреть `npx playwright show-trace` / `show-report` (таймлайн, DOM-снапшоты, сеть, консоль). Чини первопричину по trace, не селектор наугад.

## Параллельность / CI
Файлы — параллельно (`workers`), каждый тест независим (свои данные, лучше API-сиды); `fullyParallel` — только при полной изоляции. Шардинг: `--shard=1/4` … + `merge-reports`. CI-минимум: `forbidOnly: !!CI`, `retries: CI ? 1 : 0` (retry — телеметрия flaky, не лекарство), `webServer` для автоподъёма приложения.

## Page Object
Выноси в класс страницы повторяющиеся локаторы + действия; assertions — в тестах. Не строй POM на 3 теста — часто хватает fixtures.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…