MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Playwright-Typescript

Playwright-Typescript是一款code方向的AI技能,核心价值是Playwright test generation instructions,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Playwright test generation instructions

Last verified on: 2026-05-30
mkdir -p ./skills/playwright-typescript && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/playwright-typescript/SKILL.md -o ./skills/playwright-typescript/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

Test Writing Guidelines


Code Quality Standards

- **Locators**: Prioritize user-facing, role-based locators (`getByRole`, `getByLabel`, `getByText`, etc.) for resilience and accessibility. Use `test.step()` to group interactions and improve test readability and reporting.

- **Assertions**: Use auto-retrying web-first assertions. These assertions start with the `await` keyword (e.g., `await expect(locator).toHaveText()`). Avoid `expect(locator).toBeVisible()` unless specifically testing for visibility changes.

- **Timeouts**: Rely on Playwright's built-in auto-waiting mechanisms. Avoid hard-coded waits or increased default timeouts.

- **Clarity**: Use descriptive test and step titles that clearly state the intent. Add comments only to explain complex logic or non-obvious interactions.



Test Structure

- **Imports**: Start with `import { test, expect } from '@playwright/test';`.

- **Organization**: Group related tests for a feature under a `test.describe()` block.

- **Hooks**: Use `beforeEach` for setup actions common to all tests in a `describe` block (e.g., navigating to a page).

- **Titles**: Follow a clear naming convention, such as `Feature - Specific action or scenario`.



File Organization

- **Location**: Store all test files in the `tests/` directory.

- **Naming**: Use the convention `<feature-or-page>.spec.ts` (e.g., `login.spec.ts`, `search.spec.ts`).

- **Scope**: Aim for one test file per major application feature or page.


Assertion Best Practices

- **UI Structure**: Use `toMatchAriaSnapshot` to verify the accessibility tree structure of a component. This provides a comprehensive and accessible snapshot.

- **Element Counts**: Use `toHaveCount` to assert the number of elements found by a locator.

- **Text Content**: Use `toHaveText` for exact text matches and `toContainText` for partial matches.

- **Navigation**: Use `toHaveURL` to verify the page URL after an action.



Example Test Structure


typescript
import { test, expect } from '@playwright/test';

test.describe('Movie Search Feature', () => {
  test.beforeEach(async ({ page }) => {
    // Navigate to the application before each test
    await page.goto('https://debs-obrien.github.io/playwright-movies-app');
  });

  test('Search for a movie by title', async ({ page }) => {
    await test.step('Activate and perform search', async () => {
      await page.getByRole('search').click();
      const searchInput = page.getByRole('textbox', { name: 'Search Input' });
      await searchInput.fill('Garfield');
      await searchInput.press('Enter');
    });

    await test.step('Verify search results', async () => {
      // Verify the accessibility tree of the search results
      await expect(page.getByRole('main')).toMatchAriaSnapshot(`
        - main:
          - heading "Garfield" [level=1]
          - heading "search results" [level=2]
          - list "movies":
            - listitem "movie":
              - link "poster of The Garfield Movie The Garfield Movie rating":
                - /url: /playwright-movies-app/movie?id=tt5779228&page=1
                - img "poster of The Garfield Movie"
                - heading "The Garfield Movie" [level=2]
      `);
    });
  });
});

Test Execution Strategy


1. **Initial Run**: Execute tests with `npx playwright test --project=chromium`

2. **Debug Failures**: Analyze test failures and identify root causes

3. **Iterate**: Refine locators, assertions, or test logic as needed

4. **Validate**: Ensure tests pass consistently and cover the intended functionality

5. **Report**: Provide feedback on test results and any issues discovered


Quality Checklist


Before finalizing tests, ensure:

- [ ] All locators are accessible and specific and avoid strict mode violations

- [ ] Tests are grouped logically and follow a clear structure

- [ ] Assertions are meaningful and reflect user expectations

- [ ] Tests follow consistent naming conventions

- [ ] Code is properly formatted and commented

🎯 Best For

  • QA engineers
  • Developers writing unit tests
  • Claude users
  • GitHub Copilot users
  • Software engineers

💡 Use Cases

  • Generating test cases for edge conditions
  • Writing integration test suites
  • TypeScript type safety checking
  • Module refactoring

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Playwright-Typescript to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Does this generate test mocks?

Many testing skills include mock generation. Check the install command and skill content for details.

Is Playwright-Typescript compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Playwright-Typescript?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Playwright-Typescript?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/playwright-typescript/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Not testing edge cases

AI tends to generate happy-path tests. Manually review for boundary conditions.

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills