--- name: browser-automation description: This skill should be used when the user asks about browser automation, testing web pages, scraping content, filling forms, taking screenshots, or monitoring console/network activity. Activates for E2E testing, web scraping, form automation, or debugging web applications. --- When the user asks about browser automation, use Firefox DevTools MCP to control a real Firefox browser. ## When to Use This Skill Activate this skill when the user: - Wants to automate browser interactions ("Fill out this form", "Click the login button") - Needs E2E testing ("Test the checkout flow", "Verify the login works") - Requests web scraping ("Extract prices from this page", "Get all links") - Needs screenshots ("Screenshot this page", "Capture the error state") - Wants to debug ("Check for JS errors", "Show failed network requests") ## Core Workflow ### Step 1: Navigate and Snapshot ``` navigate_page url="https://example.com" take_snapshot ``` The snapshot returns a DOM representation with UIDs (e.g., `e42`) for each interactive element. ### Step 2: Interact with Elements Use UIDs from the snapshot: ``` fill_by_uid uid="e5" text="user@example.com" click_by_uid uid="e8" ``` ### Step 3: Re-snapshot After Changes DOM changes invalidate UIDs. Always re-snapshot after: - Page navigation - Form submissions - Dynamic content loads ``` take_snapshot # Get fresh UIDs ``` ## Quick Reference | Task | Tools | |------|-------| | Navigate | `navigate_page` | | See DOM | `take_snapshot` | | Click | `click_by_uid` | | Type | `fill_by_uid`, `fill_form_by_uid` | | Screenshot | `screenshot_page`, `screenshot_by_uid` | | Debug | `list_console_messages`, `list_network_requests` | ## Guidelines - **Always snapshot first**: UIDs only exist after `take_snapshot` - **Re-snapshot after DOM changes**: UIDs become stale after interactions - **Check for errors**: Use `list_console_messages level="error"` to catch JS issues - **Firefox only**: This MCP controls Firefox, not Chrome or Safari