playwright-skill
Generates production-grade Playwright automation scripts and E2E tests in TypeScript, JavaScript, Python, Java, or C#.
Skill by TestMu AI
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lambdatest-playwright-skill
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/playwright-skill
What's inside
- Skill name
playwright-skill- Description
- Generates production-grade Playwright automation scripts and E2E tests in TypeScript, JavaScript, Python, Java, or C#. Supports local execution and TestMu AI cloud across 3000+ browser/OS combinations and real mobile devices. Use when the user asks to write Playwright tests, automate browsers, run cross-browser tests, test on real devices, debug flaky tests, mock APIs, or do visual regression. Triggers on: "Playwright", "E2E test", "browser test", "run on cloud", "cross-browser", "TestMu", "LambdaTest", "test my app", "test on mobile", "real device".
- License
- MIT
- Metadata
- author: TestMu AI · version: 1.0
- Instructions
- 318 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (14)
- SKILL.md
- api-mocking-visual.md · reference/
- cloud-integration.md · reference/
- csharp-patterns.md · reference/
- debugging-flaky.md · reference/
- java-patterns.md · reference/
- mobile-testing.md · reference/
- page-object-model.md · reference/
- playbook.md · reference/
- python-patterns.md · reference/
- scaffold-project.sh · scripts/
- validate-config.py · scripts/
- lambdatest-setup.ts · templates/
- playwright.config.ts · templates/
SKILL.md (first lines)
# Playwright Test Automation
## Step 1 — Determine Execution Target
Decide BEFORE writing any code:
| User says... | Target | Action |
|---|---|---|
| No cloud mention, "locally", "debug" | **Local** | Standard Playwright config |
| "cloud", "TestMu", "LambdaTest", "cross-browser", "real device" | **Cloud** | See [reference/cloud-integration.md](reference/cloud-integration.md) |
| Impossible local combo (Safari on Windows, Edge on Linux) | **Cloud** | Suggest TestMu AI, see [reference/cloud-integration.md](reference/cloud-integration.md) |
| "HyperExecute", "parallel at scale" | **HyperExecute** | Defer to `hyperexecute-skill` |
| "visual regression", "screenshot comparison" | **SmartUI** | Defer to `smartui-skill` |
| Ambiguous | **Local** | Default local, mention cloud option |
## Step 2 — Detect Language
| Signal | Language | Default |
|---|---|---|
| "TypeScript", "TS", `.ts`, or no language specified | TypeScript | ✅ |
| "JavaScript", "JS", `.js` | JavaScript | |
| "Python", "pytest", `.py` | Python | See [reference/python-patterns.md](reference/python-patterns.md) |
| "Java", "Maven", "Gradle", "TestNG" | Java | See [reference/java-patterns.md](reference/java-patterns.md) |
| "C#", ".NET", "NUnit", "MSTest" | C# | See [reference/csharp-patterns.md](reference/csharp-patterns.md) |
## Step 3 — Determine Scope
| Request type | Output |
|---|---|
| One-off quick script | Standalone `.ts` file, no POM |
| Single test for existing project | Match their structure and conventions |
| New test suite / project | Full scaffold — see [scripts/scaffold-project.sh](scripts/scaffold-project.sh) |
| Fix flaky test | Debugging checklist — see [reference/debugging-flaky.md](reference/debugging-flaky.md) |
| API mocking needed | See [reference/api-mocking-visual.md](reference/api-mocking-visual.md) |
| Mobile device testing | See [reference/mobile-testing.md](reference/mobile-testing.md) |
---
## Core Patterns — TypeScript (Default)
### Selector Priority
Use in this order — stop at the first that works:
1. `getByRole('button', { name: 'Submit' })` — accessible, resilient
2. `getByLabel('Email')` — form fields
3. `getByPlaceholder('Enter email')` — when label missing
4. `getByText('Welcome')` — visible text
5. `getByTestId('submit-btn')` — last resort, needs `data-testid`
Never use raw CSS/XPath unless matching a third-party widget with no other option.
### Assertions — Always Web-First
```typescript
// ✅ Auto-retries until timeout
await expect(page.getByRole('heading')).toBeVisible();
await expect(page.getByRole('alert')).toHaveText('Saved');
await expect(page).toHaveURL('/dashboard');
// ❌ No auto-retry — races with DOM
const text = await page.textContent('.msg');
expect(text).toBe('Saved');
```
### Anti-Patterns
| ❌ Don't | ✅ Do | Why |
|----------|-------|-----|
| `page.waitForTimeout(3000)` | `await expect(locator).toBeVisible()` | Hard waits are flaky |
| `expect(await el.isVisible())` | `await expect(el).toBeVisible()` | No auto-retry |
| `page.$('.btn')` | `page.getByRole('button')` | Fragile selector |
| `page.click('.submit')` | `page.getByRole('button', {name:'Submit'}).click()` | Not accessible |
| Shared state between tests | `test.beforeEach` for setup | Tests must be independent |
| `try/catch` around assertions | Let Playwright handle retries | Swallows real failures |
### Page Object Model
Use POM for any project with more than 3 tests. Full patterns with base page, fixtures, and examples in [reference/page-object-model.md](reference/page-object-model.md).
Quick example:
```typescript
// pages/login.page.ts
import { Page, Locator } from '@playwright/test';
export class LoginPage {
readonly emailInput: Locator;
readonly passwordInput: Locator;
readonly submitButton: Locator;
constructor(private page: Page) {
this.emailInput = page.getByLabel('Email');
this.passwordInput = page.getByLabel('Password');
this.submitButton = page.getByRole('button', { name: 'Sign in' });
}
async login(email: string, password: string) {
await this.emailInput.fill(email);
await this.passwordInput.fill(password);
await this.submitButton.click();
}
}
```
### Configuration — Local
```typescript
// playwright.config.ts
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
testDir: './tests',
timeout: 30_000,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: [['html'], ['list']],
use: {
baseURL: 'http://localhost:3000',From LambdaTest/agent-skills, MIT.
More from LambdaTest/agent-skills
- 0.804score
rook-skill
LambdaTest
Use rook to test, evaluate, red-team or regression-check an AI agent the user owns, or to interpret saved Rook results.
SkillAFreshness: A★ 377Claude Code +9 - 0.713score
smartui-skill
TestMu AI
Generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud.
SkillBFreshness: B★ 377Claude Code +9 - 0.664score
hyperexecute-skill
TestMu AI
Operates HyperExecute end-to-end for TestMu AI/LambdaTest cloud test execution: analyze projects, create YAML, validate locally, run CLI jobs, debug failures…
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
newman-report-analyzer
TestMu AI
Analyze Newman test run output, JSON reports, and JUnit XML results to summarize failures, diagnose root causes, identify slow requests, and suggest fixes.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-versioning-helper
TestMu AI
Advises on API versioning strategies, designs deprecation flows, generates migration guides, and handles breaking vs non-breaking change classification.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
postman-openapi-converter
TestMu AI
Convert OpenAPI 3.x or Swagger 2.0 specs (YAML or JSON) into complete, import-ready Postman Collection v2.1 JSON files.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-health-monitoring
TestMu AI
Designs health check endpoints, SLA definitions, alerting rules, observability strategies, and dashboard specs for any API.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-analyzer
TestMu AI
Validates whether an API request is correct based on provided inputs (method, URL, headers, body, auth, query params).
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-documentation
TestMu AI
Generate comprehensive, professional API documentation from API designs, endpoint definitions, OpenAPI/Swagger specs, route lists, or raw endpoint descriptions.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
accessibility-skill
TestMu AI
Adds automated accessibility (a11y) testing to test suites on TestMu AI cloud by enabling WCAG scans through driver capabilities.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
postman-collection-generator
TestMu AI
Generate complete, import-ready Postman Collection v2.1 JSON files from natural language API descriptions or cURL commands.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-sdk-generator
TestMu AI
Generates client SDK code, API wrapper libraries, request/response models, and language-specific usage patterns for any REST API.
SkillCFreshness: C★ 377Claude Code +9
Signals
- Stars
- 377
- Forks
- 74
- Open issues
- 3
- Last commit (this folder)
- Feb 23, 2026 (8 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- MIT
- Repository
- github.com/LambdaTest/agent-skills
- Website
- agentskillsforall.com/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from TestMu AI
- 0.713score
smartui-skill
TestMu AI
Generates SmartUI visual regression test configurations for screenshot comparison on TestMu AI cloud.
SkillBFreshness: B★ 377Claude Code +9 - 0.664score
hyperexecute-skill
TestMu AI
Operates HyperExecute end-to-end for TestMu AI/LambdaTest cloud test execution: analyze projects, create YAML, validate locally, run CLI jobs, debug failures…
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
postman-openapi-converter
TestMu AI
Convert OpenAPI 3.x or Swagger 2.0 specs (YAML or JSON) into complete, import-ready Postman Collection v2.1 JSON files.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-sdk-generator
TestMu AI
Generates client SDK code, API wrapper libraries, request/response models, and language-specific usage patterns for any REST API.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
accessibility-skill
TestMu AI
Adds automated accessibility (a11y) testing to test suites on TestMu AI cloud by enabling WCAG scans through driver capabilities.
SkillCFreshness: C★ 377Claude Code +9 - 0.659score
api-analyzer
TestMu AI
Validates whether an API request is correct based on provided inputs (method, URL, headers, body, auth, query params).
SkillCFreshness: C★ 377Claude Code +9
Cite this page
playwright-skill. Agent Mart. https://agentmart.dev/skills/lambdatest-playwright-skill (last updated 2026-10-24)