playwright-best-practices
Use when writing Playwright tests, fixing flaky tests, debugging failures, implementing Page Object Model, configuring CI/CD, optimizing performance, mocking APIs, handling authentication or OAuth, testing accessibility (axe-core), file uploads/downloads, date/time mocking, WebSockets, geolocation,
By currents-dev · 81,645 installs
npx skills add currents-dev/playwright-best-practices-skill --skill playwright-best-practices
Source repository · Upstream listing
Playwright Best Practices
This skill provides comprehensive guidance for all aspects of Playwright test development, from writing new tests to debugging and maintaining existing test suites.
Activity Based Reference Guide
Consult these references based on what you're doing:
Writing New Tests
When to use : Creating new test files, writing test cases, implementing test scenarios
Activity Reference Files
Writing E2E tests [test suite structure.md](core/test suite structure.md), [locators.md](core/locators.md), [assertions waiting.md](core/assertions waiting.md)
Writing component tests [component testing.md](testing patterns/component testing.md), [test suite structure.md](core/test suite structure.md)
Writing API tests [api testing.md](testing patterns/api testing.md), [test suite structure.md](core/test suite structure.md)
Writing GraphQL tests [graphql testing.md](testing patterns/graphql testing.md), [api testing.md](testing patterns/api testing.md)
Writing visual regression tests [visual regression.md](testing patterns/visual regression.md), [canvas webgl.md](testing patterns/canvas webgl.md)
Structuring test code with POM [page object model.md](core/page object model.md), [test suite structure.md](core/test suite structure.md)
Setting up test data/fixtures [fixtures hooks.md](core/fixtures hooks.md), [test data.md](core/test data.md)
Handling authentication [authentication.md](advanced/authentication.md), [authentication flows.md](advanced/authentication flows.md)
Testing date/time features [clock mocking.md](advanced/clock mocking.md)
Testing file upload/download [file operations.md](testing patterns/file operations.md), [file upload download.md](testing patterns/file upload download.md)
Testing forms/validation [forms validation.md](testing patterns/forms validation.md)
Testing drag and drop [drag drop.md](testing patterns/drag drop.md)
Testing accessibility [accessibility.md](testing patterns/accessibility.md)
Testing security (XSS, CSRF) [security testing.md](testing patterns/security testing.md)
Using test annotations [annotations.md](core/annotations.md)
Using test tags [test tags.md](core/test tags.md)
Testing iframes [iframes.md](browser apis/iframes.md)
Testing canvas/WebGL [canvas webgl.md](testing patterns/canvas webgl.md)
Internationalization (i18n) [i18n.md](testing patterns/i18n.md)
Testing Electron apps [electron.md](testing patterns/electron.md)
Testing browser extensions [browser extensions.md](testing patterns/browser extensions.md)
Mobile & Responsive Testing
When to use : Testing mobile devices, touch interactions, responsive layouts
Activity Reference Files
Device emulation [mobile testing.md](advanced/mobile testing.md)
Touch gestures (swipe, tap) [mobile testing.md](advanced/mobile testing.md)
Viewport/breakpoint testing [mobile testing.md](advanced/mobile testing.md)
Mobile specific UI [mobile testing.md](advanced/mobile testing.md), [locators.md](core/locators.md)
Real Time & Browser APIs
When to use : Testing WebSockets, geolocation, permissions, multi tab flows
Activity Reference Files
WebSocket/real time testing [websockets.md](browser apis/websockets.md)
Geolocation mocking [browser apis.md](browser apis/browser apis.md)
Permission handling [browser apis.md](browser apis/browser apis.md)
Clipboard testing [browser apis.md](browser apis/browser apis.md)
Camera/microphone mocking [browser apis.md](browser apis/browser apis.md)
Multi tab/popup flows [multi context.md](advanced/multi context.md)
OAuth popup handling [third party.md](advanced/third party.md), [multi context.md](advanced/multi context.md)
Debugging & Troubleshooting
When to use : Test failures, element not found, timeouts, unexpected behavior
Activity Reference Files
Debugging test failures [debugging.md](debugging/debugging.md), [assertions waiting.md](core/assertions waiting.md)
Fixing flaky tests [flaky tests.md](debugging/flaky tests.md), [debugging.md](debugging/debugging.md), [assertions waiting.md](core/assertions waiting.md)
Debugging flaky parallel runs [flaky tests.md](debugging/flaky tests.md), [performance.md](infrastructure ci cd/performance.md), [fixtures hooks.md](core/fixtures hooks.md)
Ensuring test isolation / avoiding state leak [flaky tests.md](debugging/flaky tests.md), [fixtures hooks.md](core/fixtures hooks.md), [performance.md](infrastructure ci cd/performance.md)
Fixing selector issues [locators.md](core/locators.md), [debugging.md](debugging/debugging.md)
Investigating timeout issues [assertions waiting.md](core/assertions waiting.md), [debugging.md](debugging/debugging.md)
Using trace viewer [debugging.md](debugging/debugging.md)
Debugging race conditions [flaky tests.md](debugging/flaky tests.md), [debugging.md](debugging/debugging.md), [assertions waiting.md](core/assertions waiting.md)
Debugging console/JS errors [console errors.md](debugging/console errors.md), [debugging.md](debugging/debugging.md)
Error & Edge Case Testing
When to use : Testing error states, offline mode, network failures, validation
Activity Reference Files
Error boundary testing [error testing.md](debugging/error testing.md)
Network failure simulation [error testing.md](debugging/error testing.md), [network advanced.md](advanced/network advanced.md)
Offline mode testing [error testing.md](debugging/error testing.md), [service workers.md](browser apis/service workers.md)
Service worker testing [service workers.md](browser apis/service workers.md)
Loading state testing [error testing.md](debugging/error testing.md)
Form validation testing [error testing.md](debugging/error testing.md)
Multi User & Collaboration Testing
When to use : Testing features involving multiple users, roles, or real time collaboration
Activity Reference Files
Multiple users in one test [multi user.md](advanced/multi user.md)
Real time collaboration [multi user.md](advanced/multi user.md), [websockets.md](browser apis/websockets.md)
Role based access testing [multi user.md](advanced/multi user.md)
Concurrent action testing [multi user.md](advanced/multi user.md)
Architecture Decisions
When to use : Choosing test patterns, deciding between approaches, planning test architecture
Activity Reference Files
POM vs fixtures decision [pom vs fixtures.md](architecture/pom vs fixtures.md)
Test type selection [test architecture.md](architecture/test architecture.md)
Mock vs real services [when to mock.md](architecture/when to mock.md)
Test suite structure [test suite structure.md](core/test suite structure.md)
Framework Specific Testing
When to use : Testing React, Angular, Vue, or Next.js applications
Activity Reference Files
Testing React apps [react.md](frameworks/react.md)
Testing Angular apps [angular.md](frameworks/angular.md)
Testing Vue/Nuxt apps [vue.md](frameworks/vue.md)
Testing Next.js apps [nextjs.md](frameworks/nextjs.md)
Refactoring & Maintenance
When to use : Improving existing tests, code review, reducing duplication
Activity Reference Files
Refactoring to Page Object Model [page object model.md](core/page object model.md), [test suite structure.md](core/test suite structure.md)
Improving test organization [test suite structure.md](core/test suite structure.md), [page object model.md](core/page object model.md)
Extracting common setup/teardown [fixtures hooks.md](core/fixtures hooks.md)
Replacing brittle selectors [locators.md](core/locators.md)