Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aidotnet avatar

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)
At a glance

playwright capabilities & compatibility

Capabilities
e2e testing · browser automation · web scraping · screenshot capture · api testing
Works with
playwright
Use cases
testing · web scraping
Pricing
Free
From the docs

What playwright says it does

Cross-browser automation for testing, scraping, and web automation supporting Chromium, Firefox, and WebKit.
SKILL.md
import { test, expect } from '@playwright/test';
SKILL.md
npx skills add https://github.com/aidotnet/moyucode --skill playwright

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs25
repo stars84
Last updatedJanuary 28, 2026
Repositoryaidotnet/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

SKILL.mdMarkdownGitHub ↗

Playwright Tool

Description

Cross-browser automation for testing, scraping, and web automation supporting Chromium, Firefox, and WebKit.

Source

Installation

npm install playwright
npx playwright install  # Install browsers

Usage 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.

Testing & QAtestingfrontend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.