browserlisted
Install: claude install-skill Claudient/Claudient
# Browser Skill
## When to activate
- Automating any workflow that requires a real browser (login flows, SPAs, JS-rendered content)
- Writing end-to-end tests for web UIs
- Scraping websites that block headless requests or require JavaScript
- Generating PDFs or screenshots of web pages programmatically
- Filling forms, clicking through multi-step flows, simulating user behaviour
- Visual regression testing
## When NOT to use
- APIs that return JSON — use `fetch`/`requests` directly, no browser needed
- Simple static HTML scraping — `cheerio` or `BeautifulSoup` is faster
- Performance-critical scrapers at scale — Playwright is slow for thousands of pages
- When a site's API is available and documented — always prefer the API
## Instructions
### Setup
```bash
# Install
npm install playwright
npx playwright install chromium # install browser binaries
# or with Python
pip install playwright
playwright install chromium
```
### Basic page interaction (TypeScript)
```typescript
import { chromium, type Page } from 'playwright'
const browser = await chromium.launch({ headless: true })
const context = await browser.newContext()
const page = await context.newPage()
await page.goto('https://example.com')
// Wait for element, then interact
await page.waitForSelector('button[data-testid="login"]')
await page.click('button[data-testid="login"]')
await page.fill('input[name="email"]', 'user@example.com')
await page.fill('input[name="password"]', process.env.PASSWORD!)
await page.