Skip to main content
skill CX Codex

Browser Automation — Claude Code skill: what it does, how to install

This skill drives browser workflows with Puppeteer or Playwright, from form filling and page checks to scraping, screenshots, and PDF capture.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add claude-office-skills/skills --skill browser-automation -a claude-code
Open on GitHub

What Browser Automation does

Browser Automation gives an agent structured browser actions: open a URL, wait for a selector, click controls, enter text, choose values, and upload files. It can pull text, collections, and table data, then save screenshots or PDF files. Inputs can include URLs, selectors, actions, and scripts.

The included patterns cover form flows, paginated scraping, and end-to-end checks with assertions. The skill exposes MCP tools from browser-mcp, including browser_navigate, browser_click, browser_type, and browser_screenshot. Selectors have to match the target page. In the scraping example, pagination is capped with max_pages: 10, so that value needs adjustment for the site being processed.

What it helps with

  • fill out and submit a web form
  • extract records from pages by selector
  • check a user registration flow in a browser
  • capture a page as a PDF or screenshot
  • follow pagination and save the result as JSON

Example prompts for the agent

  • Open https://example.com, wait for .content, and extract the text from .article-content.
  • Fill in https://app.example.com/login, click button[type="submit"], and verify that navigation completes.
  • Collect product cards as JSON using .product-name, .price, and the link found in the href attribute.

How to install Browser Automation

1Skills CLI (Vercel)

npx skills add claude-office-skills/skills --skill browser-automation -a claude-code

2Manually: put the files in place

~/.claude/skills/browser-automation/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/browser-automation/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about Browser Automation

How do I install Browser Automation in Claude Code?

Run npx skills add claude-office-skills/skills --skill browser-automation -a claude-code, then check ~/.claude/skills/browser-automation/SKILL.md.

What does Browser Automation do?

The skill lets an agent control browser pages, extract content, capture screenshots, and describe test flows. Its examples cover forms, scraping, PDFs, and end-to-end checks.

What does a browser workflow need as input?

A workflow can use URLs, selectors, actions, or scripts. Page operations include navigation, clicking, typing, selecting values, and file uploads.

Source text

SKILL.md · MIT
---
name: Browser Automation
description: Automate web browser interactions, scraping, testing, and workflow automation with Puppeteer/Playwright
version: 1.0.0
author: Claude Office Skills
category: automation
tags:
  - browser
  - puppeteer
  - playwright
  - scraping
  - testing
department: engineering
models:
  - claude-3-opus
  - claude-3-sonnet
  - gpt-4
mcp:
  server: browser-mcp
  tools:
    - browser_navigate
    - browser_click
    - browser_type
    - browser_screenshot
capabilities:
  - Page navigation
  - Element interaction
  - Data extraction
  - Screenshot capture
input:
  - URLs
  - Selectors
  - Actions
  - Scripts
output:
  - Extracted data
  - Screenshots
  - Test results
  - Automation logs
languages:
  - en
related_skills:
  - web-search
  - deep-research
  - etl-pipeline
---

# Browser Automation

Automate web browser interactions for scraping, testing, and workflow automation.

## Core Capabilities

### Navigation
```yaml
navigation:
  goto:
    url: "https://example.com"
    wait_until: "networkidle"
    timeout: 30000
    
  actions:
    - wait_for_selector: ".content"
    - scroll_to_bottom: true
    - wait_for_navigation: true
```

### Element Interaction
```yaml
interactions:
  click:
    selector: "button.submit"
    options:
      click_count: 1
      delay: 100
      
  type:
    selector: "input[name='email']"
    text: "[email protected]"
    options:
      delay: 50  # Human-like typing
      
  select:
    selector: "select#country"
    value: "US"
    
  file_upload:
    selector: "input[type='file']"
    files: ["document.pdf"]
```

### Data Extraction
```yaml
scraping:
  extract_text:
    selector: ".article-content"
    
  extract_all:
    selector: ".product-card"
    fields:
      name: ".product-name"
      price: ".price"
      url:
        selector: "a"
        attribute: "href"
        
  extract_table:
    selector: "table.data"
    output: json
```

### Screenshots & PDF
```yaml
capture:
  screenshot:
    path: "screenshot.png"
    full_page: true
    type: "png"
    
  pdf:
    path: "page.pdf"
    format: "A4"
    print_background: true
```

## Workflow Examples

### Form Automation
```javascript
// Login and fill form
await page.goto('https://app.example.com/login');
await page.fill('#email', '[email protected]');
await page.fill('#password', 'securepass');
await page.click('button[type="submit"]');
await page.waitForNavigation();

// Navigate to form
await page.click('a[href="/new-entry"]');
await page.fill('#title', 'Automated Entry');
await page.fill('#description', 'Created via automation');
await page.click('button.submit');
```

### Web Scraping
```yaml
scraping_workflow:
  - navigate: "https://news.example.com"
  - wait: ".article-list"
  - extract_all:
      selector: ".article"
      fields:
        title: "h2"
        summary: ".excerpt"
        link:
          selector: "a"
          attribute: "href"
  - paginate:
      next_button: ".pagination .next"
      max_pages: 10
  - output: "articles.json"
```

### E2E Testing
```yaml
test_workflow:
  - name: "User Registration"
    steps:
      - goto: "/register"
      - fill:
          "#email": "[email protected]"
          "#password": "Test123!"
      - click: "button[type='submit']"
      - assert:
          selector: ".success-message"
          text_contains: "Welcome"
```

## Best Practices

1. **Wait Strategies**: Use proper waits
2. **Error Handling**: Catch navigation failures
3. **Rate Limiting**: Be respectful to servers
4. **Headless Mode**: Use for production
5. **Selectors**: Prefer data-testid attributes
6. **Screenshots**: Capture on failures

© Claude Office Skills · MIT · claude-office-skills/skills

Similar skills

All skills for Browser and scraping →

From the same set111

contract-review Scans contracts for legal risks, verifies clause completeness, and outlines negotiation points. Handy when vetting NDAs, service agreements, or employment offers. CX Codex +1 5,400installs crm-automation A skill for sales automation: lead capture and scoring, deal stage progression, and syncing HubSpot, Salesforce and Pipedrive. CX Codex +1 5,500installs investment-memo Drafts professional investment memos for VC, PE, or public market deals. It structures investment theses, risk assessments, and recommendations. CX Codex +1 5,400installs report-generator Generates analytical reports, KPI dashboards, and visual charts from CSV, Excel, or JSON data. Helpful when turning raw metrics into clean summaries. CX Codex +1 5,200installs sheets-automation A skill for automating Google Sheets: data sync, task reminders, reports and dashboards. Useful when spreadsheets are already part of your workflow. CX Codex +1 5,200installs Amazon Seller Automates Amazon Seller Central workflows, including FBA inventory tracking, PPC campaigns, dynamic pricing, and listing optimization. CX Codex +1 5,200installs discord-bot Guides Discord bot work for moderation, notifications, and community features. Use it when planning commands, roles, tickets, or AI-assisted bot behaviour. CX Codex +1 5,300installs invoice-generator Generates professional invoices for freelancers and small businesses. It calculates taxes, handles multiple currencies, and outputs ready-to-send documents in DOCX or PDF. CX Codex +1 5,100installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor