actionbook
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWhen to Use This Skill
何时使用此Skill
Activate this skill when the user:
- Needs to complete a multi-step task ("Send a LinkedIn message", "Book an Airbnb")
- Asks how to interact with a website ("How do I post a tweet?")
- Builds browser-based AI agents or web scrapers
- Writes E2E tests for external websites
- Navigates to any new page during browser automation
在以下场景激活此Skill:
- 需要完成多步骤任务(如“发送LinkedIn消息”、“预订Airbnb房源”)
- 询问如何与网站交互(如“我怎么发推文?”)
- 构建基于浏览器的AI Agent或网页爬虫
- 为外部网站编写E2E测试
- 在浏览器自动化过程中导航到任何新页面
How to Use
使用方法
Phase 1: Get Action Manual
阶段1:获取操作手册
bash
undefinedbash
undefinedStep 1: Search for action manuals
Step 1: Search for action manuals
actionbook search "arxiv search papers"
actionbook search "arxiv search papers"
Returns: area IDs with descriptions
Returns: area IDs with descriptions
Step 2: Get the full manual (use area_id from search results)
Step 2: Get the full manual (use area_id from search results)
actionbook get "arxiv.org:/search/advanced:default"
actionbook get "arxiv.org:/search/advanced:default"
Returns: Page structure, UI Elements with CSS/XPath selectors
Returns: Page structure, UI Elements with CSS/XPath selectors
undefinedundefinedPhase 2: Execute with Browser
阶段2:通过浏览器执行
bash
undefinedbash
undefinedStep 3: Open browser
Step 3: Open browser
actionbook browser open "https://arxiv.org/search/advanced"
actionbook browser open "https://arxiv.org/search/advanced"
Step 4: Use CSS selectors from Action Manual directly
Step 4: Use CSS selectors from Action Manual directly
actionbook browser fill "#terms-0-term" "Neural Network"
actionbook browser select "#terms-0-field" "title"
actionbook browser click "#date-filter_by-2"
actionbook browser fill "#date-year" "2025"
actionbook browser click "form[action='/search/advanced'] button.is-link"
actionbook browser fill "#terms-0-term" "Neural Network"
actionbook browser select "#terms-0-field" "title"
actionbook browser click "#date-filter_by-2"
actionbook browser fill "#date-year" "2025"
actionbook browser click "form[action='/search/advanced'] button.is-link"
Step 5: Wait for results
Step 5: Wait for results
actionbook browser wait-nav
actionbook browser wait-nav
Step 6: Extract data
Step 6: Extract data
actionbook browser text
actionbook browser text
Step 7: Close browser
Step 7: Close browser
actionbook browser close
undefinedactionbook browser close
undefinedAction Manual Format
操作手册格式
Action manuals return:
- Page URL - Target page address
- Page Structure - DOM hierarchy and key sections
- UI Elements - CSS/XPath selectors with element metadata
yaml
### button_advanced_search
- ID: button_advanced_search
- Description: Advanced search navigation button
- Type: link
- Allow Methods: click
- Selectors:
- role: getByRole('link', { name: 'Advanced Search' }) (confidence: 0.9)
- css: button.button.is-small.is-cul-darker (confidence: 0.65)
- xpath: //button[contains(@class, 'button')] (confidence: 0.55)操作手册返回内容包括:
- Page URL - 目标页面地址
- Page Structure - DOM层级结构和关键区域
- UI Elements - 带有元数据的CSS/XPath选择器
yaml
### button_advanced_search
- ID: button_advanced_search
- Description: Advanced search navigation button
- Type: link
- Allow Methods: click
- Selectors:
- role: getByRole('link', { name: 'Advanced Search' }) (confidence: 0.9)
- css: button.button.is-small.is-cul-darker (confidence: 0.65)
- xpath: //button[contains(@class, 'button')] (confidence: 0.55)Action Search Commands
操作搜索命令
bash
actionbook search "<query>" # Basic search
actionbook search "<query>" --domain site.com # Filter by domain
actionbook search "<query>" --url <url> # Filter by URL
actionbook search "<query>" -p 2 -s 20 # Page 2, 20 results
actionbook get "<area_id>" # Full details with selectorsbash
actionbook search "<query>" # Basic search
actionbook search "<query>" --domain site.com # Filter by domain
actionbook search "<query>" --url <url> # Filter by URL
actionbook search "<query>" -p 2 -s 20 # Page 2, 20 results
actionbook get "<area_id>" # Full details with selectorsarea_id format: "site.com:/path:area_name"
area_id format: "site.com:/path:area_name"
actionbook sources list # List available sources
actionbook sources search "<query>" # Search sources by keyword
undefinedactionbook sources list # List available sources
actionbook sources search "<query>" # Search sources by keyword
undefinedBrowser Commands
浏览器命令
Navigation
导航
bash
actionbook browser open <url> # Open URL in new tab
actionbook browser goto <url> # Navigate current page
actionbook browser back # Go back
actionbook browser forward # Go forward
actionbook browser reload # Reload page
actionbook browser pages # List open tabs
actionbook browser switch <page_id> # Switch tab
actionbook browser close # Close browser
actionbook browser restart # Restart browser
actionbook browser connect <endpoint> # Connect to existing browser (CDP port or URL)bash
actionbook browser open <url> # Open URL in new tab
actionbook browser goto <url> # Navigate current page
actionbook browser back # Go back
actionbook browser forward # Go forward
actionbook browser reload # Reload page
actionbook browser pages # List open tabs
actionbook browser switch <page_id> # Switch tab
actionbook browser close # Close browser
actionbook browser restart # Restart browser
actionbook browser connect <endpoint> # Connect to existing browser (CDP port or URL)Interactions (use CSS selectors from Action Manual)
元素交互(使用操作手册中的CSS选择器)
bash
actionbook browser click "<selector>" # Click element
actionbook browser click "<selector>" --wait 1000 # Wait then click
actionbook browser fill "<selector>" "text" # Clear and type
actionbook browser type "<selector>" "text" # Append text
actionbook browser select "<selector>" "value" # Select dropdown
actionbook browser hover "<selector>" # Hover
actionbook browser focus "<selector>" # Focus
actionbook browser press Enter # Press keybash
actionbook browser click "<selector>" # Click element
actionbook browser click "<selector>" --wait 1000 # Wait then click
actionbook browser fill "<selector>" "text" # Clear and type
actionbook browser type "<selector>" "text" # Append text
actionbook browser select "<selector>" "value" # Select dropdown
actionbook browser hover "<selector>" # Hover
actionbook browser focus "<selector>" # Focus
actionbook browser press Enter # Press keyGet Information
获取信息
bash
actionbook browser text # Full page text
actionbook browser text "<selector>" # Element text
actionbook browser html # Full page HTML
actionbook browser html "<selector>" # Element HTML
actionbook browser snapshot # Accessibility tree
actionbook browser viewport # Viewport dimensions
actionbook browser status # Browser detection infobash
actionbook browser text # Full page text
actionbook browser text "<selector>" # Element text
actionbook browser html # Full page HTML
actionbook browser html "<selector>" # Element HTML
actionbook browser snapshot # Accessibility tree
actionbook browser viewport # Viewport dimensions
actionbook browser status # Browser detection infoWait
等待操作
bash
actionbook browser wait "<selector>" # Wait for element
actionbook browser wait "<selector>" --timeout 5000 # Custom timeout
actionbook browser wait-nav # Wait for navigationbash
actionbook browser wait "<selector>" # Wait for element
actionbook browser wait "<selector>" --timeout 5000 # Custom timeout
actionbook browser wait-nav # Wait for navigationScreenshots & Export
截图与导出
bash
undefinedbash
undefinedEnsure target directory exists before saving screenshots
Ensure target directory exists before saving screenshots
actionbook browser screenshot # Save screenshot.png
actionbook browser screenshot output.png # Custom path
actionbook browser screenshot --full-page # Full page
actionbook browser pdf output.pdf # Export as PDF
undefinedactionbook browser screenshot # Save screenshot.png
actionbook browser screenshot output.png # Custom path
actionbook browser screenshot --full-page # Full page
actionbook browser pdf output.pdf # Export as PDF
undefinedJavaScript & Inspection
JavaScript与元素检查
bash
actionbook browser eval "document.title" # Execute JS
actionbook browser inspect 100 200 # Inspect at coordinates
actionbook browser inspect 100 200 --desc "login btn" # With descriptionbash
actionbook browser eval "document.title" # Execute JS
actionbook browser inspect 100 200 # Inspect at coordinates
actionbook browser inspect 100 200 --desc "login btn" # With descriptionCookies
Cookie管理
bash
actionbook browser cookies list # List all cookies
actionbook browser cookies get "name" # Get cookie
actionbook browser cookies set "name" "value" # Set cookie
actionbook browser cookies set "name" "value" --domain ".example.com"
actionbook browser cookies delete "name" # Delete cookie
actionbook browser cookies clear # Clear allbash
actionbook browser cookies list # List all cookies
actionbook browser cookies get "name" # Get cookie
actionbook browser cookies set "name" "value" # Set cookie
actionbook browser cookies set "name" "value" --domain ".example.com"
actionbook browser cookies delete "name" # Delete cookie
actionbook browser cookies clear # Clear allGlobal Flags
全局参数
bash
actionbook --json <command> # JSON output
actionbook --headless <command> # Headless mode
actionbook --verbose <command> # Verbose logging
actionbook -P <profile> <command> # Use specific profile
actionbook --cdp <port|url> <command> # CDP connectionbash
actionbook --json <command> # JSON output
actionbook --headless <command> # Headless mode
actionbook --verbose <command> # Verbose logging
actionbook -P <profile> <command> # Use specific profile
actionbook --cdp <port|url> <command> # CDP connectionGuidelines
使用指南
- Search by task description, not element name ("arxiv search papers" not "search button")
- Use Action Manual selectors first - they are pre-verified and don't require snapshot
- Prefer CSS ID selectors () over XPath when both are provided
#id - Fallback to snapshot when selectors fail - use then CSS selectors from the output
actionbook browser snapshot - Re-snapshot after navigation - DOM changes invalidate previous state
- 按任务描述搜索,而非元素名称(比如搜“arxiv搜索论文”而非“搜索按钮”)
- 优先使用操作手册中的选择器 - 这些选择器已预先验证,无需快照
- 当同时提供CSS ID选择器和XPath时,优先使用CSS ID选择器(如)
#id - 当选择器失效时,使用快照作为备选方案 - 执行,然后从输出中获取CSS选择器
actionbook browser snapshot - 导航后重新生成快照 - DOM变化会导致之前的状态失效
Fallback Strategy
备选策略
When Fallback is Needed
何时需要使用备选方案
Actionbook stores pre-computed page data captured at indexing time. This data may become outdated as websites evolve:
- Selector execution failure - The returned CSS/XPath selector does not match any element
- Element mismatch - The selector matches an element with unexpected type or behavior
- Multiple selector failures - Several selectors from the same action fail consecutively
Actionbook存储的是索引时捕获的预计算页面数据。随着网站更新,这些数据可能会过时:
- 选择器执行失败 - 返回的CSS/XPath选择器未匹配到任何元素
- 元素不匹配 - 选择器匹配到的元素类型或行为不符合预期
- 多个选择器连续失效 - 同一操作中的多个选择器接连失败
Fallback Approaches
备选方案
When Action Manual selectors don't work:
- Snapshot the page - to get the current accessibility tree
actionbook browser snapshot - Inspect visually - to see the current state
actionbook browser screenshot - Inspect by coordinates - to find elements
actionbook browser inspect <x> <y> - Execute JS - for dynamic queries
actionbook browser eval "document.querySelector(...)"
当操作手册中的选择器无法使用时:
- 生成页面快照 - 执行获取当前可访问性树
actionbook browser snapshot - 可视化检查 - 执行查看页面当前状态
actionbook browser screenshot - 按坐标检查元素 - 执行查找元素
actionbook browser inspect <x> <y> - 执行JavaScript - 执行进行动态查询
actionbook browser eval "document.querySelector(...)"
When to Exit
何时退出
If actionbook search returns no results or action fails unexpectedly, use other available tools to continue the task.
如果actionbook搜索无结果,或操作意外失败,请使用其他可用工具继续完成任务。
Examples
示例
End-to-end with Action Manual
结合操作手册的端到端流程
bash
undefinedbash
undefined1. Find selectors
1. Find selectors
actionbook search "airbnb search" --domain airbnb.com
actionbook search "airbnb search" --domain airbnb.com
2. Get detailed selectors (area_id from search results)
2. Get detailed selectors (area_id from search results)
actionbook get "airbnb.com:/:default"
actionbook get "airbnb.com:/:default"
3. Automate using pre-verified selectors
3. Automate using pre-verified selectors
actionbook browser open "https://www.airbnb.com"
actionbook browser fill "input[data-testid='structured-search-input-field-query']" "Tokyo"
actionbook browser click "button[data-testid='structured-search-input-search-button']"
actionbook browser wait-nav
actionbook browser text
actionbook browser close
undefinedactionbook browser open "https://www.airbnb.com"
actionbook browser fill "input[data-testid='structured-search-input-field-query']" "Tokyo"
actionbook browser click "button[data-testid='structured-search-input-search-button']"
actionbook browser wait-nav
actionbook browser text
actionbook browser close
undefinedDeep-Dive Documentation
深度文档参考
For detailed patterns and best practices:
| Reference | Description |
|---|---|
| references/command-reference.md | Complete command reference with all features |
| references/authentication.md | Login flows, OAuth, 2FA handling, state reuse |
如需详细模式和最佳实践,请参考:
| 参考文档 | 说明 |
|---|---|
| references/command-reference.md | 包含所有功能的完整命令参考 |
| references/authentication.md | 登录流程、OAuth、2FA处理、状态复用 |