playwright-core

Battle-tested Playwright patterns for E2E, API, component, visual, accessibility, and security testing. Covers locators, assertions, fixtures, network mocking, auth flows, debugging, and framework recipes for React, Next.js, Vue, and Angular. TypeScript and JavaScript.

16 stars

Best use case

playwright-core is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Battle-tested Playwright patterns for E2E, API, component, visual, accessibility, and security testing. Covers locators, assertions, fixtures, network mocking, auth flows, debugging, and framework recipes for React, Next.js, Vue, and Angular. TypeScript and JavaScript.

Teams using playwright-core should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/playwright-core/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/playwright-core/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/playwright-core/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How playwright-core Compares

Feature / Agentplaywright-coreStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Battle-tested Playwright patterns for E2E, API, component, visual, accessibility, and security testing. Covers locators, assertions, fixtures, network mocking, auth flows, debugging, and framework recipes for React, Next.js, Vue, and Angular. TypeScript and JavaScript.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Playwright Core Testing

> Opinionated, production-tested Playwright guidance — every pattern includes when (and when *not*) to use it.

**46 reference guides** covering the full Playwright testing surface: selectors, assertions, fixtures, network mocking, auth, visual regression, accessibility, API testing, debugging, and more — with TypeScript and JavaScript examples throughout.

## Golden Rules

1. **`getByRole()` over CSS/XPath** — resilient to markup changes, mirrors how users see the page
2. **Never `page.waitForTimeout()`** — use `expect(locator).toBeVisible()` or `page.waitForURL()`
3. **Web-first assertions** — `expect(locator)` auto-retries; `expect(await locator.textContent())` does not
4. **Isolate every test** — no shared state, no execution-order dependencies
5. **`baseURL` in config** — zero hardcoded URLs in tests
6. **Retries: `2` in CI, `0` locally** — surface flakiness where it matters
7. **Traces: `'on-first-retry'`** — rich debugging artifacts without CI slowdown
8. **Fixtures over globals** — share state via `test.extend()`, not module-level variables
9. **One behavior per test** — multiple related `expect()` calls are fine
10. **Mock external services only** — never mock your own app; mock third-party APIs, payment gateways, email

## Guide Index

### Writing Tests

| What you're doing | Guide | Deep dive |
|---|---|---|
| Choosing selectors | [locators.md](locators.md) | [locator-strategy.md](locator-strategy.md) |
| Assertions & waiting | [assertions-and-waiting.md](assertions-and-waiting.md) | |
| Organizing test suites | [test-organization.md](test-organization.md) | [test-architecture.md](test-architecture.md) |
| Playwright config | [configuration.md](configuration.md) | |
| Fixtures & hooks | [fixtures-and-hooks.md](fixtures-and-hooks.md) | |
| Test data | [test-data-management.md](test-data-management.md) | |
| Auth & login | [authentication.md](authentication.md) | [auth-flows.md](auth-flows.md) |
| API testing (REST/GraphQL) | [api-testing.md](api-testing.md) | |
| Visual regression | [visual-regression.md](visual-regression.md) | |
| Accessibility | [accessibility.md](accessibility.md) | |
| Mobile & responsive | [mobile-and-responsive.md](mobile-and-responsive.md) | |
| Component testing | [component-testing.md](component-testing.md) | |
| Network mocking | [network-mocking.md](network-mocking.md) | [when-to-mock.md](when-to-mock.md) |
| Forms & validation | [forms-and-validation.md](forms-and-validation.md) | |
| File uploads/downloads | [file-operations.md](file-operations.md) | [file-upload-download.md](file-upload-download.md) |
| Error & edge cases | [error-and-edge-cases.md](error-and-edge-cases.md) | |
| CRUD flows | [crud-testing.md](crud-testing.md) | |
| Drag and drop | [drag-and-drop.md](drag-and-drop.md) | |
| Search & filter UI | [search-and-filter.md](search-and-filter.md) | |

### Debugging & Fixing

| Problem | Guide |
|---|---|
| General debugging workflow | [debugging.md](debugging.md) |
| Specific error message | [error-index.md](error-index.md) |
| Flaky / intermittent tests | [flaky-tests.md](flaky-tests.md) |
| Common beginner mistakes | [common-pitfalls.md](common-pitfalls.md) |

### Framework Recipes

| Framework | Guide |
|---|---|
| Next.js (App Router + Pages Router) | [nextjs.md](nextjs.md) |
| React (CRA, Vite) | [react.md](react.md) |
| Vue 3 / Nuxt | [vue.md](vue.md) |
| Angular | [angular.md](angular.md) |

### Specialized Topics

| Topic | Guide |
|---|---|
| Multi-user & collaboration | [multi-user-and-collaboration.md](multi-user-and-collaboration.md) |
| WebSockets & real-time | [websockets-and-realtime.md](websockets-and-realtime.md) |
| Browser APIs (geo, clipboard, permissions) | [browser-apis.md](browser-apis.md) |
| iframes & Shadow DOM | [iframes-and-shadow-dom.md](iframes-and-shadow-dom.md) |
| Canvas & WebGL | [canvas-and-webgl.md](canvas-and-webgl.md) |
| Service workers & PWA | [service-workers-and-pwa.md](service-workers-and-pwa.md) |
| Electron apps | [electron-testing.md](electron-testing.md) |
| Browser extensions | [browser-extensions.md](browser-extensions.md) |
| Security testing | [security-testing.md](security-testing.md) |
| Performance & benchmarks | [performance-testing.md](performance-testing.md) |
| i18n & localization | [i18n-and-localization.md](i18n-and-localization.md) |
| Multi-tab & popups | [multi-context-and-popups.md](multi-context-and-popups.md) |
| Clock & time mocking | [clock-and-time-mocking.md](clock-and-time-mocking.md) |
| Third-party integrations | [third-party-integrations.md](third-party-integrations.md) |

### Architecture Decisions

| Question | Guide |
|---|---|
| Which locator strategy? | [locator-strategy.md](locator-strategy.md) |
| E2E vs component vs API? | [test-architecture.md](test-architecture.md) |
| Mock vs real services? | [when-to-mock.md](when-to-mock.md) |

Related Skills

playwright-skill

16
from diegosouzapw/awesome-omni-skill

Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.

playwright-app-testing

16
from diegosouzapw/awesome-omni-skill

Test the Expensify App using Playwright browser automation. Use when user requests browser testing, after making frontend changes, or when debugging UI issues

IFCore

16
from diegosouzapw/awesome-omni-skill

Use when developing on the IFCore compliance checker. Covers contracts, check function conventions, issue reporting, app structure, and development patterns.

go-playwright

16
from diegosouzapw/awesome-omni-skill

Expert capability for robust, stealthy, and efficient browser automation using Playwright Go.

core-platform-notion-reviewer

16
from diegosouzapw/awesome-omni-skill

Core Platform Team의 Notion 문서를 문서 타입(테크스펙/시스템설계/시스템소개/액션아이템/아이디어)과 17개 품질 기준에 따라 리뷰하고 개선안을 제안합니다. Notion MCP를 통해 문서 읽기/수정/검색을 수행합니다. 사용자가 Notion 문서 리뷰, 문서 품질 검사, Notion 페이지 개선 요청을 할 때 사용하세요.

core-life-ops

16
from diegosouzapw/awesome-omni-skill

Core productivity workflows (daily planning, task triage, reporting) that work across any life domain. Not intended for direct use - imported by context-specific skills like covenant-marketing-ops or personal-life-ops.

core-development

16
from diegosouzapw/awesome-omni-skill

Master core development paths - Frontend, Backend, Full Stack, DevOps. Atomic skill for learning sequences and technology stack recommendations.

convex-core

16
from diegosouzapw/awesome-omni-skill

Core Convex development guidelines - functions, validators, schema, queries, mutations, and database patterns

aspnet-core-advanced

16
from diegosouzapw/awesome-omni-skill

Master advanced ASP.NET Core development including Entity Framework Core, authentication, testing, and enterprise patterns for production applications.

applesauce-core

16
from diegosouzapw/awesome-omni-skill

This skill should be used when working with applesauce-core library for Nostr client development, including event stores, queries, observables, and client utilities. Provides comprehensive knowledge of applesauce patterns for building reactive Nostr applications.

android-engineering-core

16
from diegosouzapw/awesome-omni-skill

This skill is used to implement Android features within the existing Kotlin, Compose, Room, Hilt and Navigation architecture, including data, navigation and background work.

android-dev-core

16
from diegosouzapw/awesome-omni-skill

Android 功能开发核心规则。包含项目架构、MVI模式、Base类、Adapter、网络请求等基础规范。开发任何 Android 功能时都应加载此 skill。