名称: playwright-browser 描述: 通过CLI控制Playwright浏览器 - 导航、交互和截图 版本: 1.0.0 许可证: MIT 兼容性: opencode
概述
用于控制Playwright浏览器的CLI工具。利用Playwright的无障碍树进行轻量、高效的页面交互。
交互式会话工作流
启动一个持久浏览器会话并对其执行命令:
# 启动会话(打开可见浏览器窗口)
bun .opencode/skill/playwright-browser/session.js start
# 导航到网站
bun .opencode/skill/playwright-browser/navigate.js https://duckduckgo.com
# 获取页面结构
bun .opencode/skill/playwright-browser/snapshot.js
# 在搜索框中输入并提交
bun .opencode/skill/playwright-browser/type.js "combobox:Search with DuckDuckGo" "github" --press Enter
# 点击结果
bun .opencode/skill/playwright-browser/click.js "link:GitHub"
# 截图
bun .opencode/skill/playwright-browser/screenshot.js --output result.png
# 完成后停止会话
bun .opencode/skill/playwright-browser/session.js stop
命令
会话
管理用于交互式使用的持久浏览器会话。
bun .opencode/skill/playwright-browser/session.js start
bun .opencode/skill/playwright-browser/session.js stop
bun .opencode/skill/playwright-browser/session.js status
选项:
--headless- 在无头模式下运行(默认:有头/可见)
示例:
bun .opencode/skill/playwright-browser/session.js start
bun .opencode/skill/playwright-browser/session.js start --headless
bun .opencode/skill/playwright-browser/session.js status
bun .opencode/skill/playwright-browser/session.js stop
导航
在浏览器中导航到URL。
bun .opencode/skill/playwright-browser/navigate.js <url>
示例:
bun .opencode/skill/playwright-browser/navigate.js https://example.com
快照
获取当前页面的无障碍树。
bun .opencode/skill/playwright-browser/snapshot.js
以文本格式显示页面结构。使用此命令查找要交互的元素。
输出格式:
- 导航:
- 链接 "关于"
- 搜索:
- 组合框 "搜索"
- 按钮 "提交"
输入
在页面上的输入元素中输入文本。
bun .opencode/skill/playwright-browser/type.js <ref> <text> [--press Enter]
参数:
ref- 元素引用(角色:名称、文本:内容或CSS选择器)text- 要输入的文本
选项:
--press <key>- 输入后按某个键(例如:Enter、Tab)
示例:
bun .opencode/skill/playwright-browser/type.js "combobox:Search" "hello" --press Enter
bun .opencode/skill/playwright-browser/type.js "input[name='q']" "搜索查询"
点击
点击页面上的元素。
bun .opencode/skill/playwright-browser/click.js <ref>
参数:
ref- 元素引用(角色:名称、文本:内容或CSS选择器)
示例:
bun .opencode/skill/playwright-browser/click.js "button:Submit"
bun .opencode/skill/playwright-browser/click.js "link:Sign in"
截图
截取当前页面的屏幕截图。
bun .opencode/skill/playwright-browser/screenshot.js [--output <path>] [--full]
选项:
--output <path>- 输出文件路径(默认:screenshot.png)--full- 捕获完整页面(滚动整个页面)
示例:
bun .opencode/skill/playwright-browser/screenshot.js
bun .opencode/skill/playwright-browser/screenshot.js --output page.png
元素引用
与元素交互的命令(type、click)接受灵活的元素引用:
| 格式 | 示例 | 描述 |
|---|---|---|
role:name |
combobox:Search |
无障碍角色和名称 |
text:content |
text:Sign in |
包含文本的元素 |
| CSS选择器 | #login-btn |
标准CSS选择器 |
| CSS选择器 | input[name='q'] |
属性选择器 |
推荐工作流:
- 使用
snapshot查看无障碍树 - 查找元素的角色和名称
- 使用
role:name格式进行可靠的交互
错误恢复
命令提供有用的错误消息和建议:
- 元素未找到:“元素’X’未找到。尝试:使用snapshot查看可用元素”
- 会话问题:如果不存在会话,命令会自动启动一个
- 导航失败:“在URL导航失败。尝试:navigate URL”
注意事项
- 浏览器数据存储在项目根目录的
.playwright-data/中 - 持久上下文在会话之间维护cookie和localStorage
- 命令使用
networkidle等待以确保可靠的页面加载