mcpField
B
Browser Automation

Browser Automation

github.com/claude-office-skillsDevelopment5455.3k installsUpdated 39w ago
Repository

About Browser Automation

A skill for automating browser interactions in scraping, testing, and routine web workflows. It describes navigation, element actions, data extraction, and screenshot or PDF capture.

Key features

  1. 01Navigate to pages and wait for elements
  2. 02Click and type into page elements
  3. 03Extract text and structured fields
  4. 04Capture screenshots and PDFs
  5. 05Automate forms and end-to-end tests

Use cases

  1. 01Collect article or product details from pages
  2. 02Automate login and form submission
  3. 03Run user registration browser tests
  4. 04Save page screenshots or PDFs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/claude-office-skills/skills --skill browser-automation

After installing, type/browser-automationin Claude Code to confirm it loaded.

Details

From the project README

Browser Automation

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

Core Capabilities

Navigation
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
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
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
capture:
  screenshot:
    path: "screenshot.png"
    full_page: true
    type: "png"
    
  pdf:
    path: "page.pdf"
    format: "A4"
    print_background: true

Workflow Examples

Form Automation
// 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
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
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

Comments

Markdown supported