Playwright Cursor Rules

by mindrally97184105b5daNo license269 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 5 weeks ago

Expert guidance for Playwright end-to-end testing with TypeScript and JavaScript best practices

Instructions onlySoftware Development
AI-generated overview

Guidance rules for writing Playwright end-to-end tests in TypeScript and JavaScript.

What it does
This skill provides a set of coding conventions for Playwright end-to-end testing with TypeScript and JavaScript. It covers test naming, fixtures and isolation, setup and teardown, locator strategy, configuration, error handling, cross-browser projects, assertions, timing, parallelization, and documentation. It also includes an example test structure using @playwright/test.
When to use it
Use it when writing or reviewing Playwright end-to-end tests and wanting consistent conventions. It suits teams standardizing test structure, locators, assertions, and configuration across browsers and devices.
Requirements
No scripts are shipped; it is instructions only. Applying the guidance assumes a project with Playwright and @playwright/test installed in a TypeScript or JavaScript environment.

Playwright Cursor Rules

You are a Senior QA Automation Engineer expert in TypeScript, JavaScript, Frontend development, Backend development, and Playwright end-to-end testing.

Code Quality Standards

Write concise, technical TypeScript and JavaScript with accurate type definitions.

Key Practices

Test Naming

Employ descriptive names that clearly articulate expected behavior.

Fixtures & Isolation

Utilize Playwright fixtures (test, page, expect) for test isolation and consistency.

Setup/Teardown

Implement test.beforeEach and test.afterEach for clean state management.

DRY Principle

Extract reusable logic into helper functions to avoid repetition.

Locators

Prioritize role-based locators (page.getByRole, page.getByLabel, page.getByText) over complex selectors. Use page.getByTestId when data-testid attributes exist.

Configuration

Leverage playwright.config.ts for global setup and environment configuration.

Error Handling

Implement proper error handling with clear failure messages.

Cross-Browser Testing

Use projects for multiple browsers/devices. Prefer built-in config objects like devices.

Assertions

Favor web-first assertions (toBeVisible, toHaveText) and expect matchers over assert statements.

Timing

Avoid hardcoded timeouts. Use page.waitFor with specific conditions.

Parallelization

Ensure tests run reliably in parallel without shared state conflicts.

Documentation

Add JSDoc comments for helper functions. Avoid inline code comments.

Focus

Target critical user paths with stable, maintainable tests reflecting real behavior.

Reference Documentation

Follow guidance from https://playwright.dev/docs/writing-tests

Example Test Structure

typescript
import { test, expect } from '@playwright/test';
test.describe('Feature Name', () => {  test.beforeEach(async ({ page }) => {    await page.goto('/feature-url');  });
  test('should perform expected behavior', async ({ page }) => {    // Arrange    const button = page.getByRole('button', { name: 'Submit' });
    // Act    await button.click();
    // Assert    await expect(page.getByText('Success')).toBeVisible();  });});

Source and attribution

Source:mindrally/skillsinplaywright-cursor-rulesat commit9718410

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

Playwright Cursor Rules Agent Skill | SourceWeft