К основному содержанию
скилл CX Codex

recording-browser-flow-as-test — скилл для Claude Code

Записывает действия в браузере через MCP и превращает их в E2E-тест Playwright с надёжными селекторами accessibility tree.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add spencerpauly/awesome-cursor-skills --skill recording-browser-flow-as-test -a claude-code
Открыть на GitHub

Что делает recording-browser-flow-as-test

Скилл использует инструмент browser MCP как рекордер. Агент делает снимок страницы через browser_snapshot, нажимает кнопки, заполняет поля и фиксирует каждый шаг. Селекторы берутся не из координат или шатких путей верстки, а из дерева доступности: getByRole, getByLabel и getByPlaceholder. В финальный файл tests/recorded/<flow-name>.spec.ts попадают готовые вызовы Playwright вместе с проверками URL и видимого результата. Временные идентификаторы снимка браузера удаляются, чтобы тест не ломался при следующем запуске.

Для работы нужен доступный dev-сервер приложения и установленный пакет @playwright/test. Если в сценарии встречаются капчи, ссылки из почты или двухфакторная аутентификация, скилл с ними не справится — для таких шагов придётся настроить моки или тестовые обходы.

Какие задачи решает

  • записать пользовательский сценарий в браузере и сгенерировать тест Playwright
  • заменить нестабильные селекторы в тестах на проверки accessibility tree
  • исключить клики по координатам и сессионные ID из автотестов
  • добавить проверки URL и видимых элементов после цепочки действий

Примеры запросов агенту

  • Запиши сценарий: открой /login, заполни форму, перейди в профиль и сохрани как Playwright тест
  • Пройди по шагам переключение тёмной темы в настройках и создай spec-файл в tests/recorded

Как установить recording-browser-flow-as-test

1Через Skills CLI (Vercel)

npx skills add spencerpauly/awesome-cursor-skills --skill recording-browser-flow-as-test -a claude-code

2Вручную: положить файлы

~/.claude/skills/recording-browser-flow-as-test/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/recording-browser-flow-as-test/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора59

adding-api-docs Скилл собирает OpenAPI/Swagger-описание вашего API: схемы эндпоинтов, типы запросов и ответов, интерактивную страницу документации. CX Codex +1 413установок parallel-test-fixing Скилл распределяет упавшие файлы тестов между параллельными субагентами, чтобы исправлять ошибки независимо. Он нужен при поломке сразу нескольких тестовых файлов. CX Codex +1 412установок profiling-performance Скилл запускает профилирование CPU во встроенном браузере через инструменты MCP. Он находит медленные функции и помогает устранить зависания интерфейса. CX Codex +1 410установок python-tdd-with-uv Ведёт агента по циклу red-green-refactor в Python и настраивает проект на uv. Пригодится, когда пишете тесты до кода. CX Codex +1 409установок verifying-markdown-formatting Скилл проходит по Markdown-файлу чек-листом и правит форматирование: заголовки, списки, ссылки, код-блоки, пробелы. Пригодится перед коммитом README или документации. CX Codex +1 404установок exporting-to-png Скилл обучает агента преобразовывать код, диаграммы Mermaid, вывод терминала и SVG в PNG-файлы с помощью консольных утилит или headless-браузера. CX Codex +1 401установок parallel-ci-triage Делит упавшие джобы GitHub Actions между параллельными субагентами: каждый чинит свой кусок. Пригодится, когда CI сломался в нескольких местах сразу. CX Codex +1 403установок screenshotting-changelog Делает визуальный changelog для пул-реквеста: снимает страницы до и после правок и вставляет пары картинок в описание PR. CX Codex +1 401установок

Похожие

playwright-in-sandbox customware-ai Скилл для проверки интерфейса в браузере через Playwright и написания устойчивых E2E-тестов. Пригодится, когда после правок UI нужны скриншоты, а не только состояние DOM. CX Codex +1 508установок playwright-generate-test официальный github Создаёт Playwright-тест по сценарию через Playwright MCP. Подходит, когда нужно пройти сценарий в браузере перед генерацией кода. 18 162установок browser-screenshot-diff ruvnet Сравнивает две записанные браузерные сессии по шагам, скриншотам и accessibility-дереву. Нужен для поиска визуальных расхождений и проверки replay. CX Codex +1 696установок playwright-recording digitalsamba Скилл записывает действия в браузере как видео через Playwright — для демо, обзоров интерфейса и футажа под Remotion. CX Codex +1 1 300установок agentic-browser-testing kindlmann Скилл учит агента проходить E2E-сценарий по цели на естественном языке: он сам исследует приложение через дерево доступности, без заранее написанного скрипта. CX Codex +1 1 400установок browser-control anomalyco Скилл гоняет детерминированный Playwright в вашем открытом Chromium-браузере: инспектирует вкладку, кликает, проверяет результат. Пригодится, когда нужно продолжить уже залогиненный сценарий. CX Codex +1 995установок

Рядом в теме «Тесты и QA»

Всё по теме «Тесты и QA» →

Вопросы о recording-browser-flow-as-test

Как установить recording-browser-flow-as-test в Claude Code?

Выполните команду npx skills add spencerpauly/awesome-cursor-skills --skill recording-browser-flow-as-test -a claude-code.

Что делает скилл recording-browser-flow-as-test?

Он выполняет действия в браузере через MCP, протоколирует их и генерирует готовый файл Playwright со стабильными селекторами.

В каких случаях этот скилл не сработает?

Он не подходит для шагов с ручной двухфакторной аутентификацией, капчами или переходом по ссылкам из почты, если для них нет моков.

Исходный текст

SKILL.md · CC0-1.0
---
name: recording-browser-flow-as-test
description: Execute a user flow step-by-step in Cursor's built-in browser while documenting each action, then emit a Playwright test that replays the same flow using stable selectors derived from the accessibility tree.
user-invocable: true
---

# Recording Browser Flow as Playwright Test

Use the **browser** MCP as a **recorder**: every navigation, click, fill, and keypress becomes a row in a script. The agent then translates that trace into a **Playwright** test file in the repo (or a snippet to paste into an existing spec).

This is Cursor-native because it combines `browser_snapshot` (refs + roles + names) with structured actions — not a separate recorder extension.

## Prerequisites

- Target app reachable (e.g. dev server running); use `finding-dev-server-url` if needed.
- Repo has or will have Playwright installed (`@playwright/test`). If not, add it with `adding-e2e-tests` or the project’s standard setup.

## Recording workflow

### 1. Define the flow

One sentence scope, e.g. “Log in, open Settings, toggle dark mode, save.”

### 2. For each step, in order

1. **`browser_snapshot`** — get the accessibility tree and element refs.
2. Choose the **smallest** interaction:
   - `browser_click` with ref from snapshot (not coordinate clicks unless required).
   - `browser_fill` or `browser_type` for inputs.
   - `browser_select_option` for selects.
   - `browser_navigate` for full URL changes.
3. **Log the step** in a structured list the main agent keeps:

   - Step number
   - Action verb (`navigate`, `click`, `fill`, `press`, `select`)
   - **Locator strategy for Playwright** — prefer:
     - `getByRole('button', { name: '...' })`
     - `getByLabel('...')`
     - `getByPlaceholder('...')`
     - `getByTestId('...')` if the app uses test IDs
   - Value (for fills), URL (for navigates)
   - Optional: short assertion (“expect URL to contain `/settings`”)

4. After actions that change the DOM or navigate, take a **new** `browser_snapshot` before the next interaction.

5. If the flow must wait for async content, use `browser_wait_for` or short incremental waits per `cursor-ide-browser` guidance — then snapshot again.

### 3. Add assertions

From the final snapshot and URL, add **at least**:

- `expect(page).toHaveURL(...)` or URL fragment check
- One **visible** outcome: text, role, or test id

### 4. Generate Playwright output

Emit a test file, e.g. `tests/recorded/<flow-name>.spec.ts`, containing:

- `test.describe` and `test('...', async ({ page }) => { ... })`
- Steps as `await page.goto(...)`, `await page.getByRole(...).click()`, etc.
- **No** raw snapshot refs in the final file — they are session-specific.

### 5. Run and harden

```bash
npx playwright test tests/recorded/<flow-name>.spec.ts
```

Fix flakiness: prefer `expect(locator).toBeVisible()` before clicks, use `toPass()` retries for async lists, avoid arbitrary `waitForTimeout` except as last resort.

## Tips

- **Stable selectors**: roles and accessible names beat CSS from devtools. Add `data-testid` in app code if names are ambiguous.
- **Auth**: if the flow needs login, use env vars for test credentials or Playwright `storageState` — never commit secrets.
- **Parallel runs**: ensure test data does not collide with other tests.

## When not to use

- Flows that require manual 2FA, captchas, or email links — stop and ask the user for a test bypass or mock.

© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой