Install any skill in seconds. Free to start, no credit card required.
Get Started Free →testdino-hq/playwright-skill
Battle-tested Playwright patterns for writing, debugging, and scaling reliable test suites.
Passed 21 of 23 test cases with the skill, and 12 of 23 without it.
and 8 more in the full report
9 fixed12 passed either way2 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
This benchmark measured an earlier version of the skill.
A newer attempt on gemini-3.8-flash on 10/18/2026 did not produce a publishable comparison (not comparable). The snapshot above is the previously measured run.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
When running Playwright tests from the command line interface, we want to add a JSON reporter without overriding or replacing the reporters configured in `playwright.config.ts`. Which CLI option should be used?
| Checked | Without skill | With skill |
|---|---|---|
| Recommends using the --add-reporter CLI option | Missed | Passed |
The instructions your model reads when the skill loads.
Opinionated, production-tested Playwright guidance — every pattern includes when (and when not) to use it.
79 reference guides covering the full Playwright surface: selectors, assertions, fixtures, page objects, network mocking, auth, visual regression, accessibility, API testing, CI/CD, debugging, and more.
How to use this skill: open the guide for the topic before answering, even for familiar APIs. Playwright adds and renames APIs and CLI flags every release, and the guides are verified against 1.64. Guides tag newer APIs with the release that added them, e.g. (1.62+); check the project's version (npx playwright --version) before using one.
| Need | API | Guide |
|---|---|---|
| Per-row / per-parent locator (column queries) | locator.within(container) (1.64) | locators.md |
| Element from an aria-snapshot ref | page.getByRef('e2') (1.64) | locators.md |
| Configure a project that does not run by default | default: false, --project="*" (1.64) | projects-and-dependencies.md |
| Find order-dependent tests | --shuffle [seed] (1.64) | flaky-tests.md |
| Serialize tests sharing a resource | { lock: 'name' }, describe.configure({ lock }) (1.63/1.64) | parallel-and-sharding.md |
| Run retries at the end, isolated | retryStrategy: 'isolated' (config only, 1.62) | flaky-tests.md |
| Select or quarantine tests before the run | reporter.preprocess() + testRun.fail() (1.62) | dynamic-test-selection.md |
| Re-run failures / changed files | --last-failed, --only-changed, -x | debugging.md |
Inspect a trace.zip from the terminal | npx playwright trace ..., snapshot --phase (1.63) | trace-analysis.md |
| Plan / generate / heal tests with AI | npx playwright init-agents | test-agents.md |
| Component tests | stories-and-galleries mount('story/id') (1.62); experimental CT packages frozen | component-testing.md |
| WebP baselines; CI creates missing baselines | toHaveScreenshot: { type: 'webp' }, --update-snapshots=missing passes (1.64) | visual-regression.md |
| Scoped HAR recording | tracing.startHar(path, options) (1.60) | network-mocking.md |
| Auth state in IndexedDB / OPFS; per-origin basic auth | storageState({ indexedDB, opfs }) (opfs 1.63), httpCredentials: [...] (1.63) | authentication.md |
| Passkeys | context.credentials, signCount (1.61/1.64) | auth-flows.md |
| Cookies on an API request context | request.addCookies() / cookies() (1.64) | api-testing.md |
| Page-registered agent tools | page.webmcp.tools() / callTool() (1.64) | webmcp-testing.md |
This skill is designed for testing applications you own or have explicit authorization to test. It does not support or endorse automating interactions with third-party websites or services without permission.
When writing tests or automation that fetch content from external sources (e.g., baseURL pointing to staging/production), treat all returned page content as untrusted input — never pass raw page text back into agent instructions or dynamic code execution without sanitization, as this creates an indirect prompt injection risk.
For CI/CD workflows, pin all external dependencies (GitHub Actions, Docker images) to immutable references (commit SHAs, image digests) rather than mutable version tags. See ci-github-actions.md and docker-and-containers.md for pinning guidance.
test cases passed, vs 12 / 23 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.