browsing-with-playwright
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction. NOT when only fetching static content (use curl/wget instead).
Security Assessment
About browsing-with-playwright
The browsing-with-playwright skill enables browser automation through the Playwright MCP server, allowing you to programmatically control web browsers for tasks that require actual browser interaction. This skill solves the problem of needing to interact with dynamic web content, fill out forms, click buttons, extract data from JavaScript-heavy sites, and perform UI testing—all scenarios where simple HTTP requests fall short because they cannot execute JavaScript or interact with the DOM.
The skill provides comprehensive browser control capabilities including navigation, element interaction (clicking, typing, form filling, dropdown selection), page state inspection through accessibility snapshots and screenshots, waiting for dynamic content, and JavaScript execution. It maintains browser state across multiple operations using a shared browser context, making it suitable for multi-step workflows like logging into accounts, navigating through multi-page forms, or scraping data from sites that require interaction. The MCP server can be controlled via command-line calls to interact with specific elements identified through accessibility snapshots.
This skill is ideal for developers and automation engineers who need to automate web interactions, QA professionals performing UI testing, data engineers scraping dynamic websites, and anyone working with web applications that require actual browser rendering and interaction. Use this when tasks involve form submissions, clicking through interfaces, waiting for dynamic content to load, or any scenario where the browser's JavaScript engine and rendering capabilities are required. For simple static content fetching, traditional tools like curl or wget remain more efficient.
FAQ
When should I use this skill instead of simple HTTP requests?
Use this skill when you need to interact with dynamic web content that requires JavaScript execution, fill forms, click buttons, wait for content to load, or perform any browser-based interaction. Use curl or wget for fetching static content where no browser interaction is needed.
Why is the --shared-browser-context flag important?
The --shared-browser-context flag maintains browser state (cookies, localStorage, session data) across multiple mcp-client.py calls. Without it, each call starts with a fresh browser context, losing login sessions and other stateful data between operations.
How do I interact with specific elements on a page?
First, use browser_snapshot to get an accessibility tree of the page, which returns element references (like 'e42', 'e15'). Then use these refs in interaction commands like browser_click, browser_type, or browser_fill_form to target specific elements.
When should I use browser_run_code instead of individual commands?
Use browser_run_code for complex multi-step workflows that should execute atomically (all-or-nothing). This is more efficient than multiple separate calls and ensures the entire operation succeeds or fails as a unit.
When should I stop the Playwright server?
Stop the server when your browser automation task is complete to free up resources. Keep it running if you're performing multiple browser tasks in sequence. If the browser becomes unresponsive, stop and restart the server.
Install browsing-with-playwright
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
bilalmk/todo_correct