
Playwright
- 25 installs
- 84 repo stars
- Updated January 28, 2026
- aidotnet/moyucode
playwright is a Claude Code skill for Microsoft's cross-browser automation framework, used for E2E testing, scraping, and web automation across Chromium, Firefox, and WebKit.
About
playwright is a Claude Code skill that wraps Microsoft's Playwright cross-browser automation framework. A developer uses it to write end-to-end tests, scrape pages, capture screenshots and PDFs, and test APIs across Chromium, Firefox, and WebKit with a single API. The SKILL.md provides TypeScript recipes for browser automation, locator-based scraping, and the @playwright/test runner.
- Cross-browser automation for Chromium, Firefox, and WebKit
- Covers E2E testing, web scraping, screenshots/PDF, and API testing
- TypeScript examples using Playwright locators and @playwright/test
Playwright by the numbers
- 25 all-time installs (skills.sh)
- Ranked #1,392 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
playwright capabilities & compatibility
- Capabilities
- e2e testing · browser automation · web scraping · screenshot capture · api testing
- Works with
- playwright
- Use cases
- testing · web scraping
- Pricing
- Free
What playwright says it does
Cross-browser automation for testing, scraping, and web automation supporting Chromium, Firefox, and WebKit.
import { test, expect } from '@playwright/test';
npx skills add https://github.com/aidotnet/moyucode --skill playwrightAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 25 |
|---|---|
| repo stars | ★ 84 |
| Last updated | January 28, 2026 |
| Repository | aidotnet/moyucode ↗ |
What it does
Automate cross-browser E2E tests, scraping, and screenshots with Playwright in TypeScript.
Who is it for?
Cross-browser E2E testing, scraping, and screenshot/PDF capture
Skip if: Unit testing pure functions without a browser
When should I use this skill?
You need browser automation, E2E tests, or scraping across browsers
What you get
Cross-browser automation scripts and E2E tests using Playwright
- E2E test scripts
- Browser automation scripts
By the numbers
- Single API drives 3 browser engines: Chromium, Firefox, and WebKit
Files
Playwright Tool
Description
Cross-browser automation for testing, scraping, and web automation supporting Chromium, Firefox, and WebKit.
Source
- Repository: microsoft/playwright
- License: Apache-2.0
- Maintainer: Microsoft
Installation
npm install playwright
npx playwright install # Install browsersUsage Examples
Browser Automation
import { chromium, firefox, webkit } from 'playwright';
async function automateTask() {
// Launch any browser
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext({
viewport: { width: 1920, height: 1080 },
userAgent: 'Custom User Agent',
});
const page = await context.newPage();
await page.goto('https://example.com');
// Click, type, interact
await page.click('button.login');
await page.fill('input[name="email"]', 'user@example.com');
await page.fill('input[name="password"]', 'password123');
await page.click('button[type="submit"]');
// Wait for navigation
await page.waitForURL('**/dashboard');
await browser.close();
}Screenshot & PDF
async function captureContent(url: string) {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto(url);
// Screenshot
await page.screenshot({
path: 'screenshot.png',
fullPage: true,
});
// PDF (Chromium only)
await page.pdf({
path: 'document.pdf',
format: 'A4',
margin: { top: '1cm', bottom: '1cm' },
});
await browser.close();
}Web Scraping with Locators
async function scrapeProducts(url: string) {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto(url);
// Use locators for reliable element selection
const products = await page.locator('.product-card').all();
const data = await Promise.all(products.map(async (product) => ({
name: await product.locator('.name').textContent(),
price: await product.locator('.price').textContent(),
rating: await product.locator('.rating').getAttribute('data-value'),
})));
await browser.close();
return data;
}API Testing
import { request } from 'playwright';
async function testAPI() {
const context = await request.newContext({
baseURL: 'https://api.example.com',
extraHTTPHeaders: {
'Authorization': 'Bearer token123',
},
});
// GET request
const response = await context.get('/users');
const users = await response.json();
// POST request
const createResponse = await context.post('/users', {
data: { name: 'John', email: 'john@example.com' },
});
await context.dispose();
}E2E Testing
import { test, expect } from '@playwright/test';
test('user can login', async ({ page }) => {
await page.goto('/login');
await page.fill('[name="email"]', 'test@example.com');
await page.fill('[name="password"]', 'password');
await page.click('button[type="submit"]');
await expect(page).toHaveURL('/dashboard');
await expect(page.locator('h1')).toHaveText('Welcome');
});Tags
browser, testing, automation, e2e, scraping
Compatibility
- Codex: ✅
- Claude Code: ✅
Related skills
FAQ
Which browsers does Playwright support?
A single API supports Chromium, Firefox, and WebKit.
What can you do with it besides testing?
Web scraping with locators, screenshot and PDF capture, and API testing.