SKILL.md
readonly只读
name
playwright-cli
description
自动化浏览器交互、测试网页并处理 Playwright 测试。
使用 playwright-cli 进行浏览器自动化
快速开始
# 打开新浏览器
playwright-cli open
# 导航到页面
playwright-cli goto https://playwright.dev
# 使用快照中的引用与页面交互
playwright-cli click e15
playwright-cli type "page.click"
playwright-cli press Enter
# 截图(较少使用,快照更常见)
playwright-cli screenshot
# 关闭浏览器
playwright-cli close
命令
核心
playwright-cli open
# 打开并立即导航
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
# 为每个后续操作(click, type, ...)添加标注,命名操作并高亮目标
playwright-cli video-show-actions --duration=600 --position=top-right
playwright-cli video-hide-actions
# 启动仪表板进行 UI 审查/设计反馈 — 用户标注页面,您收到带标注的截图、快照和备注
playwright-cli show --annotate
# 根据元素的引用或选择器生成 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
# 通过通道名称连接到正在运行的 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
Windows 上包含 & 的 URL
在 Windows 上,cmd.exe 和 PowerShell 将 & 视为命令分隔符,因此带有多个查询参数的 URL 会在 playwright-cli 运行前被截断。在 cmd.exe 中使用 ^& 转义 &,或在 PowerShell 中使用 --%:
playwright-cli goto "https://example.com/?a=1^&b=2"
playwright-cli --% goto "https://example.com/?a=1&b=2"
快照
每个命令后,playwright-cli 提供当前浏览器状态的快照。
> playwright-cli goto https://example.com
### 页面
- 页面 URL: https://example.com/
- 页面标题: Example Domain
### 快照
[快照](.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
定位元素
默认使用快照中的引用来与页面元素交互。
# 获取带引用的快照
playwright-cli snapshot
# 使用引用交互
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
特定任务
- 运行和调试 Playwright 测试 references/playwright-tests.md
- 请求模拟 references/request-mocking.md
- 运行 Playwright 代码 references/running-code.md
- 浏览器会话管理 references/session-management.md
- 规范驱动测试(计划/生成/修复) references/spec-driven-testing.md
- 存储状态(cookies, localStorage) references/storage-state.md
- 测试生成 references/test-generation.md
- 追踪 references/tracing.md
- 视频录制 references/video-recording.md
- 检查元素属性 references/element-attributes.md






