Skip to main content

browser

Automate browser interactions using agent-browser CLI — navigate, click, fill forms, scrape content, take screenshots, and more.

来源信息

仓库
devtodollars/mvp-boilerplate
最近来源活动
2026年3月5日 19:45
检测到的 SKILL.md 语言
英语
星标
997
分支
124

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
browser
description
Automate browser interactions using agent-browser CLI — navigate, click, fill forms, scrape content, take screenshots, and more.
argument-hint
<command> [args...]
allowed-tools
Bash(npx agent-browser *)
# Browser Automation with agent-browser Control a headless Chromium browser via CLI commands. All commands are run with `npx agent-browser <command>`. ## Setup (first time only) ```bash npx agent-browser install ``` ## Navigation | Command | Description | |---|---| | `open <url>` | Navigate to a URL | | `close` | Close browser | | `tab` | List open tabs | | `tab new [url]` | Open new tab | | `tab <n>` | Switch to tab n | | `tab close [n]` | Close tab | | `window new` | Open new browser window | | `frame <selector>` | Switch to iframe | | `frame main` | Return to main frame | ## Page Inspection (use these to understand page structure) | Command | Description | |---|---| | `snapshot` | Get accessibility tree with `@e1`, `@e2` element refs (best for AI) | | `screenshot [path]` | Capture screenshot | | `screenshot --full` | Full page screenshot | | `screenshot --annotate` | Screenshot with numbered element labels | | `get text <sel>` | Extract text content | | `get html <sel>` | Get innerHTML | | `get value <sel>` | Get input value | | `get attr <sel> <attr>` | Get element attribute | | `get title` | Get page title | | `get url` | Get current URL | | `get count <sel>` | Count matching elements | | `get box <sel>` | Get bounding box | | `get styles <sel>` | Get computed styles | | `is visible <sel>` | Check if element is visible | | `is enabled <sel>` | Check if element is enabled | | `is checked <sel>` | Check if checkbox is checked | ## Clicking & Interaction | Command | Description | |---|---| | `click <sel>` | Click an element | | `click <sel> --new-tab` | Click, opening in new tab | | `dblclick <sel>` | Double-click | | `hover <sel>` | Hover over element | | `focus <sel>` | Focus element | | `scroll <dir> [px]` | Scroll up/down/left/right | | `scrollintoview <sel>` | Scroll element into view | | `drag <src> <tgt>` | Drag and drop | ## Text Input | Command | Description | |---|---| | `fill <sel> <text>` | Clear field and type text | | `type <sel> <text>` | Type into focused element (appends) | | `keyboard type <text>` | Type with real keystrokes | | `keyboard inserttext <text>` | Insert text without key events | | `press <key>` | Press a key (Enter, Tab, Control+a, etc.) | | `keydown <key>` | Hold key down | | `keyup <key>` | Release key | ## Form Controls | Command | Description | |---|---| | `check <sel>` | Check a checkbox | | `uncheck <sel>` | Uncheck a checkbox | | `select <sel> <val>` | Select dropdown option | | `upload <sel> <files>` | Upload file(s) to input | ## Semantic Find (locate elements by meaning, not CSS) ``` find role <role> <action> [value] # By ARIA role find text <text> <action> # By visible text find label <label> <action> [value] # By label find placeholder <ph> <action> [value] # By placeholder find alt <text> <action> # By alt text find title <text> <action> # By title attribute find testid <id> <action> [value] # By data-testid find first <sel> <action> [value] # First match find last <sel> <action> [value] # Last match find nth <n> <sel> <action> [value] # Nth match ``` **Actions:** `click`, `fill`, `type`, `hover`, `focus`, `check`, `uncheck`, `text` **Options:** `--name <name>` (filter by accessible name), `--exact` (exact match) **Examples:** ```bash npx agent-browser find role button click --name "Submit" npx agent-browser find text "Sign In" click npx agent-browser find label "Email" fill "user@example.com" npx agent-browser find placeholder "Search..." fill "vinyl records" ``` ## Waiting | Command | Description | |---|---| | `wait <selector>` | Wait for element to appear | | `wait <ms>` | Wait N milliseconds | | `wait --text "text"` | Wait for text to appear | | `wait --url "**/path"` | Wait for URL pattern | | `wait --load networkidle` | Wait for network idle | | `wait --fn "window.ready"` | Wait for JS condition | ## Cookies & Storage | Command | Description | |---|---| | `cookies` | Get all cookies | | `cookies set <name> <val>` | Set a cookie | | `cookies clear` | Clear cookies | | `storage local` | Get all localStorage | | `storage local <key>` | Get localStorage key | | `storage local set <k> <v>` | Set localStorage value | | `storage local clear` | Clear localStorage | | `storage session` | Same commands for sessionStorage | ## Network Interception | Command | Description | |---|---| | `network route <url>` | Intercept requests matching URL | | `network route <url> --abort` | Block matching requests | | `network route <url> --body <json>` | Mock response body | | `network unroute [url]` | Remove intercept routes | | `network requests` | View tracked requests | | `network requests --filter <pat>` | Filter requests by pattern | ## JavaScript Execution | Command | Description | |---|---| | `eval <js>` | Run JavaScript in page context | | `eval -b <base64>` | Run base64-encoded JS | ## Browser Configuration | Command | Description | |---|---| | `set viewport <w> <h>` | Set viewport size | | `set device <name>` | Emulate device (e.g. "iPhone 14") | | `set media dark` | Emulate dark color scheme | | `set media light` | Emulate light color scheme | | `set offline on` | Enable offline mode | | `set offline off` | Disable offline mode | | `set geo <lat> <lng>` | Set geolocation | | `set headers <json>` | Set extra HTTP headers | | `set credentials <user> <pass>` | Set HTTP basic auth | ## Mouse Control | Command | Description | |---|---| | `mouse move <x> <y>` | Move cursor to coordinates | | `mouse down [button]` | Press mouse button | | `mouse up [button]` | Release mouse button | | `mouse wheel <dy> [dx]` | Scroll wheel | ## State Persistence | Command | Description | |---|---| | `state save <path>` | Save auth/session state | | `state load <path>` | Load saved state | | `state list` | List saved states | | `state clear [name]` | Clear a saved state | | `state clear --all` | Clear all saved states | ## Debugging | Command | Description | |---|---| | `console` | View console messages | | `errors` | View uncaught exceptions | | `highlight <sel>` | Visually highlight element | | `trace start [path]` | Start trace recording | | `trace stop [path]` | Stop and save trace | | `profiler start` | Start CPU profiling | | `profiler stop [path]` | Save profile | | `pdf <path>` | Save page as PDF | ## Comparison & Diffing | Command | Description | |---|---| | `diff snapshot` | Compare current vs previous snapshot | | `diff snapshot --baseline <file>` | Compare against saved file | | `diff screenshot --baseline <file>` | Visual pixel comparison | | `diff url <a> <b>` | Compare two URLs | ## Typical Workflow 1. **Open a page:** `open http://localhost:3000` 2. **Inspect structure:** `snapshot` (returns element refs like `@e1`, `@e2`) 3. **Interact using refs:** `click @e3` or `fill @e5 "my text"` 4. **Verify results:** `get text @e7` or `screenshot` 5. **Close when done:** `close` ## Selectors Commands accept these selector types: - **Element refs** from snapshot: `@e1`, `@e2`, etc. (preferred for AI) - **CSS selectors:** `#id`, `.class`, `div > span` - **XPath:** `//button[@type="submit"]` - **Semantic find:** Use the `find` command family above ## Default Login Flow When testing locally, log in first before performing authenticated browser actions: - URL: http://localhost:3000/auth - Use Supabase Auth (email/password) ## Project-Specific Pages Key pages to test in the MVP boilerplate: | Page | URL | Notes | |---|---|---| | Landing | `http://localhost:3000` | Sections: Navbar, Hero, Logos, Items, Stats, Pricing, FAQ, Cta, Footer | | Sign In / Sign Up | `http://localhost:3000/auth` | Supabase Auth UI | | Account | `http://localhost:3000/account` | Authenticated - user profile & subscription | | Pricing | `http://localhost:3000/#pricing` | Stripe checkout integration | ## Testing Dark Mode ```bash # Toggle dark mode via the ModeToggle button in the navbar npx agent-browser find role button click --name "Toggle theme" # Or force via browser emulation npx agent-browser set media dark npx agent-browser set media light ``` ## Testing Responsive Design ```bash # Mobile npx agent-browser set viewport 375 812 # Tablet npx agent-browser set viewport 768 1024 # Desktop npx agent-browser set viewport 1440 900 ```
在 GitHub 查看