Install
openclaw skills install playright-cli-zh自动化浏览器交互、测试网页以及使用 Playwright 测试。
openclaw skills install playright-cli-zh# 有头模式打开新浏览器
playwright-cli --headed open
# 无头模式打开新浏览器
playwright-cli open
# 导航到页面
playwright-cli goto https://playwright.dev
# 使用快照中的 ref 与页面交互
playwright-cli click e15
playwright-cli type "page.click"
playwright-cli press Enter
# 截图(较少使用,快照更常见)
playwright-cli screenshot
# 关闭浏览器
playwright-cli close
playwright-cli --headed open
playwright-cli open
# 打开并立即导航
playwright-cli --headed open https://example.com/
playwright-cli open https://example.com/
playwright-cli goto https://playwright.dev
playwright-cli type "搜索查询"
playwright-cli click e3
playwright-cli dblclick e7
# --submit 在填写元素后按 Enter
playwright-cli fill e5 "user@example.com" --submit
playwright-cli drag e2 e8
# 从页面外部拖放文件/数据到元素上
playwright-cli drop e4 --path=./image.png
playwright-cli drop e4 --data="text/plain=hello world"
playwright-cli hover e4
playwright-cli select e9 "option-value"
playwright-cli upload ./document.pdf
playwright-cli check e12
playwright-cli uncheck e12
playwright-cli snapshot
playwright-cli eval "document.title"
playwright-cli eval "el => el.textContent" e5
# 获取元素 id、class 或快照中不可见的属性
playwright-cli eval "el => el.id" e5
playwright-cli eval "el => el.getAttribute('data-testid')" e5
playwright-cli dialog-accept
playwright-cli dialog-accept "确认文本"
playwright-cli dialog-dismiss
playwright-cli resize 1920 1080
playwright-cli close
playwright-cli go-back
playwright-cli go-forward
playwright-cli reload
playwright-cli press Enter
playwright-cli press ArrowDown
playwright-cli keydown Shift
playwright-cli keyup Shift
playwright-cli mousemove 150 300
playwright-cli mousedown
playwright-cli mousedown right
playwright-cli mouseup
playwright-cli mouseup right
playwright-cli mousewheel 0 100
playwright-cli screenshot
playwright-cli screenshot e5
playwright-cli screenshot --filename=page.png
playwright-cli pdf --filename=page.pdf
playwright-cli tab-list
playwright-cli tab-new
playwright-cli tab-new https://example.com/page
playwright-cli tab-close
playwright-cli tab-close 2
playwright-cli tab-select 0
playwright-cli state-save
playwright-cli state-save auth.json
playwright-cli state-load auth.json
# Cookies
playwright-cli cookie-list
playwright-cli cookie-list --domain=example.com
playwright-cli cookie-get session_id
playwright-cli cookie-set session_id abc123
playwright-cli cookie-set session_id abc123 --domain=example.com --httpOnly --secure
playwright-cli cookie-delete session_id
playwright-cli cookie-clear
# LocalStorage
playwright-cli localstorage-list
playwright-cli localstorage-get theme
playwright-cli localstorage-set theme dark
playwright-cli localstorage-delete theme
playwright-cli localstorage-clear
# SessionStorage
playwright-cli sessionstorage-list
playwright-cli sessionstorage-get step
playwright-cli sessionstorage-set step 3
playwright-cli sessionstorage-delete step
playwright-cli sessionstorage-clear
playwright-cli route "**/*.jpg" --status=404
playwright-cli route "https://api.example.com/**" --body='{"mock": true}'
playwright-cli route-list
playwright-cli unroute "**/*.jpg"
playwright-cli unroute
playwright-cli console
playwright-cli console warning
playwright-cli requests
playwright-cli request 5
playwright-cli run-code "async page => await page.context().grantPermissions(['geolocation'])"
playwright-cli run-code --filename=script.js
playwright-cli tracing-start
playwright-cli tracing-stop
playwright-cli video-start video.webm
playwright-cli video-chapter "章节标题" --description="详细信息" --duration=2000
playwright-cli video-stop
# 启动仪表板用于 UI 审查/设计反馈 — 用户在页面上标注,你收到带标注的截图、快照和备注
playwright-cli show --annotate
# 根据 ref 或选择器生成 Playwright 定位器
playwright-cli generate-locator e5 --raw
# 为元素显示持久高亮叠加层,可自定义样式
playwright-cli highlight e5
playwright-cli highlight e5 --style="outline: 3px dashed red"
# 隐藏单个元素高亮,或未指定目标时隐藏所有页面高亮
playwright-cli highlight e5 --hide
playwright-cli highlight --hide
全局 --raw 选项会从输出中剥离页面状态、生成的代码和快照部分,仅返回结果值。用于将命令输出管道传递给其他工具。不产生输出的命令返回空。
playwright-cli --raw eval "JSON.stringify(performance.timing)" | jq '.loadEventEnd - .navigationStart'
playwright-cli --raw eval "JSON.stringify([...document.querySelectorAll('a')].map(a => a.href))" > links.json
playwright-cli --raw snapshot > before.yml
playwright-cli click e5
playwright-cli --raw snapshot > after.yml
diff before.yml after.yml
TOKEN=$(playwright-cli --raw cookie-get session_id)
playwright-cli --raw localstorage-get theme
使用 --json 可将每条回复包装为 JSON 结构化输出:
playwright-cli list --json
# 创建会话时指定浏览器
playwright-cli open --browser=chrome
playwright-cli open --browser=firefox
playwright-cli open --browser=webkit
playwright-cli open --browser=msedge
# 使用持久化配置(默认为内存配置)
playwright-cli open --persistent
# 使用自定义目录的持久化配置
playwright-cli open --profile=/path/to/profile
# 通过 Playwright 扩展连接浏览器
playwright-cli attach --extension=chrome
# 通过 channel 名称连接运行中的 Chrome 或 Edge
playwright-cli attach --cdp=chrome
playwright-cli attach --cdp=msedge
# 通过 CDP 端点连接运行中的浏览器
playwright-cli attach --cdp=http://localhost:9222
# 使用配置文件启动
playwright-cli open --config=my-config.json
# 关闭浏览器
playwright-cli close
# 断开已连接的浏览器(外部浏览器保持运行)
playwright-cli -s=msedge detach
# 删除默认会话的用户数据
playwright-cli delete-data
每个命令执行后,playwright-cli 会提供当前浏览器状态的快照。
> playwright-cli goto https://example.com
### Page
- Page URL: https://example.com/
- Page Title: Example Domain
### Snapshot
[Snapshot](.playwright-cli/page-2026-02-14T19-22-42-679Z.yml)
你也可以使用 playwright-cli snapshot 命令按需获取快照。以下选项可自由组合。
# 默认 — 以时间戳命名保存到文件
playwright-cli snapshot
# 保存到指定文件(当快照是工作流结果的一部分时使用)
playwright-cli snapshot --filename=after-click.yaml
# 快照某个元素而非整个页面
playwright-cli snapshot "#main"
# 限制快照深度以提高效率,之后进行局部快照
playwright-cli snapshot --depth=4
playwright-cli snapshot e34
# 包含每个元素的边界框 [box=x,y,width,height]
playwright-cli snapshot --boxes
默认情况下,使用快照中的 ref 与页面元素交互。
# 获取带 ref 的快照
playwright-cli snapshot
# 使用 ref 交互
playwright-cli click e15
你也可以使用 CSS 选择器或 Playwright 定位器。
# CSS 选择器
playwright-cli click "#main > button.submit"
# 角色定位器
playwright-cli click "getByRole('button', { name: 'Submit' })"
# 测试 ID
playwright-cli click "getByTestId('submit-button')"
# 创建名为 "mysession" 的浏览器会话(带持久化配置)
playwright-cli -s=mysession open example.com --persistent
# 手动指定配置目录(仅在明确要求时使用)
playwright-cli -s=mysession open example.com --profile=/path/to/profile
playwright-cli -s=mysession click e6
playwright-cli -s=mysession close # 停止命名浏览器
playwright-cli -s=mysession delete-data # 删除持久化会话的用户数据
playwright-cli list
# 关闭所有浏览器
playwright-cli close-all
# 强制终止所有浏览器进程
playwright-cli kill-all
如果全局 playwright-cli 命令不可用,尝试通过 npx playwright-cli 使用本地版本:
npx --no-install playwright-cli --version
本地版本可用时,所有命令使用 npx playwright-cli。否则,全局安装 playwright-cli:
npm install -g @playwright/cli@latest
playwright-cli open https://example.com/form
playwright-cli snapshot
playwright-cli fill e1 "user@example.com"
playwright-cli fill e2 "password123"
playwright-cli click e3
playwright-cli snapshot
playwright-cli close
playwright-cli open https://example.com
playwright-cli tab-new https://example.com/other
playwright-cli tab-list
playwright-cli tab-select 0
playwright-cli snapshot
playwright-cli close
playwright-cli open https://example.com
playwright-cli click e4
playwright-cli fill e7 "test"
playwright-cli console
playwright-cli requests
playwright-cli close
playwright-cli open https://example.com
playwright-cli tracing-start
playwright-cli click e4
playwright-cli fill e7 "test"
playwright-cli tracing-stop
playwright-cli close
请求用户进行 UI 审查或设计反馈。用户在实时页面上绘制标注并输入评论;你收到带标注的截图、标注区域的快照以及用户备注。当用户请求"UI 审查"、"设计反馈"或"询问用户想法/意图"时使用:
playwright-cli open https://example.com
playwright-cli show --annotate