本页目录
项目介绍
**它是什么。**Playwright CLI 是微软 Playwright 团队出的命令行工具,命令名 playwright-cli。智能体在终端里一条条执行 open、snapshot、click、fill、screenshot 这类命令,就能打开网页、点击、填表、翻页、截图。它解决的问题和 Playwright MCP 一样:让智能体操作一个真实浏览器,而不是只读网页文本。
| 项 | 内容 |
|---|---|
| 开发与维护 | 微软 Playwright 团队(GitHub 组织 microsoft) |
| 开源与许可证 | 开源,Apache-2.0 |
| 首次发布 | npm 包 @playwright/cli 首个版本 0.0.60,2026-01-26(GitHub 仓库 microsoft/playwright-cli 创建于 2020-06-19,早于这个 npm 包) |
| 最新版本 | 0.1.22,2026-09-28 |
| GitHub 星数与最近提交 | 约 1.4 万星;默认分支最近一次提交 2026-09-28(2026-10 核查) |
| 接入方式 | CLI+Skill。CLI(命令行程序)是执行器,Skill(一份 SKILL.md 说明书)告诉智能体有哪些命令、按什么顺序用 |
核心能力:
- 用
open、click、fill、press等命令操作网页; snapshot把页面结构存成文件,模型按需读取,比每步把整页结构塞进对话省 token(token 是模型计量文字的单位,也是计费单位);screenshot截图存文件,便于留证;install --skills把配套 Skill 装进项目;可以用电脑上已有的 Chrome 或 Edge。
**国内网络:**可用。从 npmmirror 能装上 CLI,浏览器内核也能从国内镜像下载;电脑上已有 Edge 或 Chrome 时不必下载浏览器。
与 Playwright MCP 的关系
同一引擎,两种形式。两者都由 Playwright 团队维护,底层是同一套浏览器控制代码(CLI 的配置项沿用 PLAYWRIGHT_MCP_* 环境变量名,也能看出两者共用实现)。区别在智能体怎么调用:
| Playwright CLI | Playwright MCP | |
|---|---|---|
| 智能体怎么调用 | 经 Bash 或 PowerShell 执行命令,按 Skill 说明操作 | 客户端连接 MCP 服务器,得到二十多个 browser_* 工具 |
| 页面信息怎么给模型 | 快照默认存成文件,模型按需读取 | 每步把页面结构直接返回给模型 |
| 装法 | npm install -g 装 CLI,再装 Skill | claude mcp add 或 WorkBuddy 的 MCP 配置 |
官方 README 的说法(大意):CLI+Skill 更省 token,因为不必把大段工具定义和页面结构塞进模型上下文,适合同时要处理代码、测试和推理的编程智能体;MCP 适合需要持续保持浏览器状态、反复分析页面结构的场景,例如探索式自动化、长时间自主运行的流程。
对本周内容的意义:MCP 是“客户端给智能体多装一组工具”,CLI+Skill 是“智能体自己在终端跑命令,靠说明书知道怎么跑”。同一个打开网页、点按钮的任务,两种接法都能做,可以放在一起对比工具调用的两种形态。
官方链接
| 项 | 链接或信息 |
|---|---|
| 官网 | https://playwright.dev |
| 官方仓库(README 即文档) | https://github.com/microsoft/playwright-cli (国内能打开,但慢且不稳定) |
| npm 包 | https://www.npmjs.com/package/@playwright/cli ;国内镜像 https://registry.npmmirror.com/@playwright/cli |
| 版本历史 | 运行 npm view @playwright/cli time;或看仓库 Tags 页 |
| 价格 | 开源(Apache-2.0),免费 |
| 对照:Playwright MCP | https://github.com/microsoft/playwright-mcp |
最新版本 0.1.22,npm 发布时间 2026-09-28。近期版本 0.1.19(09-01)、0.1.20(09-14)、0.1.21(09-18),更新频繁(2026-10 核查)。
运行要求:Node.js 18 或更新版本。
能做什么、不能做什么
能做:
- 打开网页,点击、输入、选择下拉框、勾选、上传文件、按键、翻页、切换标签页
- 取页面快照(带
e15这类元素编号),按编号操作元素 - 截图、存 PDF、录视频、记录操作过程(trace)
- 管理 Cookie、localStorage(网站存在浏览器里的登录信息和设置),保存和载入登录状态
- 多个会话并行(
-s=名字),show打开监控面板看所有会话 - 生成 Playwright 测试代码(面向编程,本周用不到)
不能做或不该做:
- 不能替你过验证码、人机验证;遇到时停下来交给人
- 不是搜索引擎:要先知道去哪个网站,找资料仍靠搜索工具,如 DeepSeek 搜索与读取
- 不适合大规模爬取;频繁访问可能被网站限流或封 IP
- 不要连接日常浏览器的登录态做练习(见“费用、额度、隐私与安全”)
**适合的任务:**在统计局、央行、交易所、招聘网站这类页面上点击、翻页、填查询条件,取回数据和原文链接,并截图留证。
安装与配置
前置条件
| 依赖 | 说明 |
|---|---|
| Node.js 18+(建议 22 或 24 LTS) | 提供 node、npm 命令。Windows 从 https://nodejs.org 下载 x64 安装包 |
| npm 源 | 运行 npm config set registry https://registry.npmmirror.com 改成国内镜像。国内网络下 npmmirror 更快,官方源也能连上 |
| 浏览器 | Windows 11 自带 Edge 即可。安装 Skill 时,CLI 先找电脑上的 Chrome,再找 Edge,找到就直接用,只补装录视频用的 ffmpeg;两者都没有才下载 Chromium。Chromium 从 Chrome for Testing(谷歌给自动化用的 Chrome 版本)下载,默认地址 cdn.playwright.dev 国内能连上 |
| Git for Windows(Claude Code 端建议装) | 装了以后 Claude Code 用 Git Bash 执行命令,见下文“Skill 装在哪里” |
交给智能体装:Claude Code 端
在要做浏览器任务的项目文件夹里打开 Claude Code,复制下面这段:
请帮我安装 Playwright CLI(官方仓库 https://github.com/microsoft/playwright-cli ,npm 包 @playwright/cli)。要求:
1. 先运行 node --version 和 npm --version 检查 Node.js。没有或低于 18 就停下来告诉我,不要替我装 Node.js。
2. 运行 npm config get registry,不是 https://registry.npmmirror.com/ 就运行 npm config set registry https://registry.npmmirror.com 。再用 npm install -g @playwright/cli@latest 全局安装,不要用 npx 临时运行代替安装。出现 install-scripts 相关提示(npm 11.20 起默认不跑安装脚本)时,把原文给我看,不要自己运行 approve。
3. 在当前项目文件夹运行 playwright-cli install --skills,把 Skill 装进当前项目。本机有 Chrome 或 Edge 就用它,不要另外下载浏览器内核;如果它要下载 Chromium,先停下来问我。
4. 装完自查:运行 playwright-cli --version;运行 playwright-cli open https://playwright.dev --headed,确认弹出浏览器窗口;再运行 playwright-cli snapshot 和 playwright-cli close。
5. 遇到要输入密码、要管理员权限、要修改系统设置(包括 PowerShell 执行策略)的情况,停下来问我。
最后告诉我:装的版本号、Skill 装在哪个文件夹、用的是哪个浏览器。
交给智能体装:WorkBuddy 端
在 WorkBuddy 里打开项目文件夹(工作区),新建任务,复制下面这段。和 Claude Code 端的区别是第 4 步:WorkBuddy 不读 .claude/skills/,要把 Skill 复制到 .workbuddy/skills/。
请帮我安装 Playwright CLI(官方仓库 https://github.com/microsoft/playwright-cli ,npm 包 @playwright/cli)。要求:
1. 先运行 node --version 和 npm --version 检查 Node.js。没有或低于 18 就停下来告诉我,不要替我装 Node.js。
2. 运行 npm config get registry,不是 https://registry.npmmirror.com/ 就运行 npm config set registry https://registry.npmmirror.com 。再用 npm install -g @playwright/cli@latest 全局安装,不要用 npx 临时运行代替安装。出现 install-scripts 相关提示时,把原文给我看,不要自己运行 approve。
3. 在当前工作区运行 playwright-cli install --skills。本机有 Chrome 或 Edge 就用它,不要另外下载浏览器内核;如果它要下载 Chromium,先停下来问我。
4. 把生成的 .claude/skills/playwright-cli 整个文件夹(含 references 子文件夹)复制到 .workbuddy/skills/playwright-cli。
5. 装完自查:运行 playwright-cli --version;运行 playwright-cli open https://playwright.dev --headed,确认弹出浏览器窗口;再运行 playwright-cli snapshot 和 playwright-cli close。
6. 遇到要输入密码、要管理员权限、要修改系统设置(包括 PowerShell 执行策略)的情况,停下来问我。
最后告诉我:装的版本号、Skill 装在哪个文件夹、用的是哪个浏览器。
智能体会请求哪些权限
| 请求 | 处理 |
|---|---|
运行 node --version、npm --version、playwright-cli --version | 只读,可允许 |
运行 npm config set registry https://registry.npmmirror.com | 把 npm 下载源改成国内镜像(写进用户目录的 .npmrc),看清地址再允许 |
运行 npm install -g @playwright/cli@latest | 看清包名是 @playwright/cli(带 @playwright/ 前缀)再允许。拼错的包名可能是别人上传的同名包 |
运行 npm install-scripts approve ... | 放行某个包的安装脚本。本工具不需要,先看清提示再决定 |
运行 playwright-cli install --skills | 会在当前文件夹写入 .claude/skills/playwright-cli/、.playwright/,并在 .gitignore 里加一行 .playwright-cli/(文件夹是 Git 仓库时)。确认当前文件夹是你的项目文件夹再允许 |
运行 playwright-cli open ...、snapshot 等 | 可允许;Claude Code 里可选“本项目不再询问 playwright-cli” |
| WorkBuddy 沙箱弹出“允许访问某某域名” | 是 npm 或浏览器下载、或要打开的网站,看清域名再允许。首次启动浏览器时可能请求 clients2.google.com(Chrome 的更新服务),国内网络下连不上,允许或拒绝都可以;如果浏览器因此卡住不启动,关掉重开一次 |
以管理员身份运行、Set-ExecutionPolicy、改注册表 | 拒绝,见“常见问题与排错” |
Skill 装在哪里
Claude Code 端。playwright-cli install --skills 默认装到当前文件夹的 .claude/skills/playwright-cli/,属于项目级 Skill,只在这个项目里生效。其他写法:
| 命令 | 位置 |
|---|---|
playwright-cli install --skills | <项目>/.claude/skills/playwright-cli/ |
playwright-cli install --skills --global | ~/.claude/skills/playwright-cli/(用户级,所有项目可用;Windows 上是 C:\Users\<你的用户名>\.claude\skills\) |
playwright-cli install --skills=agents | <项目>/.agents/skills/playwright-cli/(给 Codex 等读 .agents 的工具) |
不加 --global 时,这条命令还会初始化工作区:建 .playwright/ 文件夹,并检查浏览器。用 Edge 时会写一个 .playwright/cli.config.json 记下 msedge。
升级 CLI 后,如果 Skill 版本与 CLI 不一致,playwright-cli 运行时会提示重新执行 playwright-cli install --skills。
Windows 上 Claude Code 用什么执行命令(据 Claude Code 官方安装文档):
- 装了 Git for Windows:Bash 工具用 Git Bash 执行命令,PowerShell 工具同时可用。
- 没装 Git for Windows:Claude Code 用 PowerShell 执行命令。
- 想指定用不用 PowerShell 工具,可在 settings.json 的
env里设CLAUDE_CODE_USE_POWERSHELL_TOOL为1或0。 - Claude Code 找不到 Git Bash 时,在 settings.json 的
env里设CLAUDE_CODE_GIT_BASH_PATH,例如C:\Program Files\Git\bin\bash.exe。
playwright-cli 由 npm 装成 Windows 命令,Git Bash 和 PowerShell 里都能直接调用,Skill 里的命令两种环境通用。官方 Skill 的 allowed-tools 写的是 Bash(playwright-cli:*),即在 Bash 工具下预先放行这类命令;走 PowerShell 工具时可能仍逐条询问。两种环境的差别在网址带多个 & 参数时,见“常见问题与排错”。
装好后,Skill 一般无需重启即被识别;在 Claude Code 里输入 / 看不到 playwright-cli,就退出后在项目文件夹重新运行 claude。
**WorkBuddy 端。**WorkBuddy 的项目级 Skill 读 <工作区>/.workbuddy/skills/,不读 .claude/skills/;个人级是 ~/.workbuddy/skills/。install --skills 只认 claude 和 agents 两个目标,没有 WorkBuddy 选项,所以要复制:先在项目文件夹运行 playwright-cli install --skills,再把 .claude/skills/playwright-cli/ 整个文件夹复制到 .workbuddy/skills/playwright-cli/。references/ 子文件夹要一起复制,Skill 正文会引用里面的会话管理、登录状态等说明。CLI 本身是全局命令,两端共用一份,不用装两次。
同类的 CLI+Skill 工具(如 agent-browser)放进 .workbuddy/skills/ 后,WorkBuddy 能在 / 技能列表里看到并通过命令行调用,Playwright CLI 用的是同一机制。几点差别:
- 复制过去的 Skill 不会随 CLI 升级自动更新,也不在版本一致性检查的范围内。升级 CLI 后重新复制一次。
- 官方 Skill 的
allowed-tools是 Claude Code 的写法,WorkBuddy 不一定识别,执行时可能仍逐条请求允许。 - 电脑上没有 Node.js 时,
npm install -g无从执行。WorkBuddy 自带一份 Node,但路径不直观,建议直接装官方 Node.js。 - WorkBuddy 有内置“浏览器操控”(设置 > 智能体 > 浏览器操控),不装 CLI 也能操作网页,见 WorkBuddy 内置浏览器。这里用 Playwright CLI,是为了体会 CLI+Skill 这种接入方式。
要你亲手做的部分
- 安装 Node.js(下载安装包、点“下一步”,可能有管理员授权弹窗)。
- 需要的话安装 Git for Windows。
- 点智能体和 WorkBuddy 沙箱的权限请求(看清命令和域名)。
- 遇到要登录的网站,自己在
--headed弹出的窗口里登录,不把密码交给智能体。 - 本工具不需要 API Key。
参考:手动安装命令
Windows 11 x64(PowerShell):
node --version
npm --version
npm config set registry https://registry.npmmirror.com
npm install -g @playwright/cli@latest
playwright-cli --version
cd D:\我的项目
playwright-cli install --skills
Copy-Item -Recurse .claude\skills\playwright-cli .workbuddy\skills\playwright-cli
- 最后一行只在用 WorkBuddy 时需要。
- 不想改全局下载源时,只对这一次指定:
npm install -g @playwright/cli@latest --registry=https://registry.npmmirror.com。 - PowerShell 报“禁止运行脚本”时,把命令换成
npm.cmd、playwright-cli.cmd,见“常见问题与排错”。 - npm 11.20 起默认不运行包的安装脚本。装包时如果出现
npm warn install-scripts,可用npm install-scripts ls查看是哪个包;@playwright/cli不需要放行安装脚本。
macOS:
npm config set registry https://registry.npmmirror.com
npm install -g @playwright/cli@latest
playwright-cli --version
cd ~/我的项目
playwright-cli install --skills
mkdir -p .workbuddy/skills && cp -R .claude/skills/playwright-cli .workbuddy/skills/
不想装 Skill 也能用:官方 README 说可以在提示词里直接告诉智能体“用 playwright-cli,先看 playwright-cli --help”,它会自己读帮助学会用法。
怎样确认装好了
| 检查 | 预期 |
|---|---|
playwright-cli --version | 显示版本号(例如 0.1.22) |
项目里有 .claude/skills/playwright-cli/SKILL.md | 有;用 WorkBuddy 还要有 .workbuddy/skills/playwright-cli/SKILL.md |
playwright-cli open https://playwright.dev --headed | 弹出浏览器窗口并打开 Playwright 官网 |
playwright-cli snapshot | 输出页面地址、标题和快照文件路径 |
playwright-cli list | 列出 default 会话 |
在客户端输入 / | 技能列表里有 playwright-cli |
playwright-cli close | 浏览器窗口关闭 |
使用教程:从国家统计局取最新 CPI 并留证
为什么要加 --headed
Playwright CLI 默认无头运行:浏览器在后台跑,屏幕上看不到窗口。智能体在终端里照样能点能填,但你只看到一行行命令和文字,看不到页面上发生了什么。open 加 --headed 才弹出可见窗口,能看到页面跳转、输入框被填、按钮被点。
另外两点:
- 无头会话一小时没有命令会自动关闭;有头的窗口一直开着,直到
close。 - 智能体忘了加
--headed,或同时跑几个会话时,另开一个终端运行playwright-cli show,打开监控面板:网格里列出所有会话的实时画面、网址和标题,点进去可以看大图;点击画面可以接管鼠标键盘,按 Esc 交还。
所以提示词里写明“用 --headed 打开”,并说明“看到验证码或登录框就停下”。
提示词(可直接复制)
请用 playwright-cli 技能完成任务,浏览器用 --headed 打开,让我能看到窗口。
1. 打开国家统计局网站 https://www.stats.gov.cn ,进入“数据”栏目下的“最新发布”列表。
2. 在列表里找到最新一期“居民消费价格”(CPI)的发布稿,点进去。不要用搜索引擎,在网站内点击进入。
3. 从正文中读出:统计月份、全国 CPI 同比涨幅、环比涨幅,各摘一句原文。
4. 对正文开头部分截图,保存为 cpi_release.png。
5. 把结果写进 cpi_result.md:三项数字、对应原句、发布稿网址、发布日期、截图文件名。
6. 遇到验证码、登录框或页面打不开,停下来告诉我,不要反复重试。
完成后关闭浏览器。
预期看到的工具调用
智能体读取 playwright-cli Skill 后,经 Bash(或 PowerShell)依次执行类似命令:
playwright-cli open https://www.stats.gov.cn --headed
playwright-cli snapshot # 找到“数据”“最新发布”的元素编号
playwright-cli click e23
playwright-cli snapshot # 在列表里找 CPI 稿
playwright-cli click e57
playwright-cli snapshot # 或用 eval 读取正文文字
playwright-cli screenshot --filename=cpi_release.png
playwright-cli close
# 后面是说明,不是命令的一部分。元素编号每次不同。每次页面跳转后它会重新 snapshot,再按新编号点击,这是 Skill 规定的顺序。快照文件存在项目里的 .playwright-cli/ 文件夹。
产出与验收
| 产出 | 验收方法 |
|---|---|
cpi_result.md | 打开网址,核对三项数字与原句一字不差;发布日期与网页一致 |
cpi_release.png | 打开图片,能看到标题和数字所在段落 |
| 过程 | 看到浏览器窗口里的点击过程;终端里有 open、snapshot、click、screenshot 记录 |
对答案用:2026-10 核查时,最新一期是 2026-10-14 发布的“2026年9月份居民消费价格同比上涨0.9%”(https://www.stats.gov.cn/sj/zxfb/202610/t20261014_1965477.html ),数字以原文为准。“最新发布”列表页是动态页面,用读网页文本的工具直接读只拿到页脚;浏览器会执行页面脚本,能看到列表,这是用浏览器的理由之一。统计局栏目名称和页面结构可能调整,提示词里的栏目名以网站当前显示为准。
备用练习页(结构稳定、不涉及外部网站):官方示例 https://demo.playwright.dev/todomvc/ ,可让智能体添加两条待办、勾选一条、截图。
常见问题与排错
| 现象 | 原因 | 处理 |
|---|---|---|
PowerShell 里输入 npm 或 playwright-cli 报“无法加载文件 …ps1,因为在此系统上禁止运行脚本” | PowerShell 执行策略阻止 npm 生成的 .ps1 启动脚本 | 改用 npm.cmd、playwright-cli.cmd,或在 CMD、Git Bash 里运行。不要为此改系统执行策略 |
playwright-cli 不是内部或外部命令 | 全局安装目录不在 PATH,或装完没重开终端 | 重开终端或客户端;运行 npm prefix -g 查安装目录,确认在 PATH 中 |
npm install -g 很慢、超时、ETIMEDOUT | 没改源,官方源慢或一时连不上 | npm config set registry https://registry.npmmirror.com 后重装 |
出现 npm warn install-scripts | npm 11.20 起默认不跑安装脚本 | npm install-scripts ls 看是哪个包;确认需要再 npm install-scripts approve <包名> |
install --skills 开始下载 Chromium | 没找到 Chrome 或 Edge | Windows 11 一般有 Edge,确认 Edge 已安装后重试;或先装 Chrome。下载走 Chrome for Testing,默认地址 cdn.playwright.dev 国内能连上。不要把 PLAYWRIGHT_DOWNLOAD_HOST 指向 npmmirror:它拼出的下载地址与 npmmirror 的目录结构对不上 |
想用 attach --extension,Chrome 扩展装不上 | Chrome 应用店在国内网络下连不上 | 不接日常浏览器;确有需要在 Windows 上改用 Edge 加载项商店(国内可达) |
| 智能体说操作成功,屏幕上什么都没有 | 默认无头 | 先 playwright-cli close,再 open <网址> --headed;或运行 playwright-cli show 看后台会话 |
网址带多个 & 参数时被截断 | Windows 的 cmd 和 PowerShell 把 & 当命令分隔符 | 官方 Skill 写法:cmd 里写成 ^&;PowerShell 里在命令前加 --%,如 playwright-cli --% goto "https://example.com/?a=1&b=2"。Git Bash 里加引号即可 |
| WorkBuddy 不认这个技能 | Skill 只装在 .claude/skills/ | 复制到 .workbuddy/skills/playwright-cli/,重开会话 |
| Claude Code 不认这个技能 | 不在 Skill 所在的项目文件夹启动,或装在别的目录 | 在装 Skill 的项目文件夹运行 claude;或改用 --global 装到用户级 |
| 提示 Skill 与工具版本不一致 | 升级了 CLI,Skill 还是旧版 | 重新运行 playwright-cli install --skills;WorkBuddy 再复制一次 |
| 浏览器窗口关不掉、命令卡住 | 残留会话 | playwright-cli list 查看;playwright-cli close-all 关闭全部;仍不行用 playwright-cli kill-all |
| 页面要验证码、滑块 | 网站反自动化 | 停下来人工处理或换数据来源;不让智能体绕过 |
| 在 WSL 里装了 CLI,Windows 端客户端找不到 | WSL 是 Linux 环境,路径和程序与 Windows 分开 | Node、CLI、浏览器和客户端放在同一侧,用原生 Windows 即可 |
费用、额度、隐私与安全
- 费用:开源免费,不需要 Key。消耗的是智能体所接模型的额度;按官方说法,CLI+Skill 比 MCP 每步传给模型的内容少。
- 登录态:默认会话的 Cookie 只存在内存,关闭浏览器就丢失;加
--persistent才保存到磁盘。练习时用默认会话,不要让它连接日常使用的 Chrome(attach --cdp、attach --extension会接管你已登录的浏览器)。 - 输出文件:
.playwright-cli/里的快照和日志可能含页面上的个人信息或登录凭据,CLI 自己在.gitignore里的注释也写了“may contain credentials”。不要上传到 GitHub、群文件或共享文件夹;state-save存下的登录状态文件同理。 - 截图:截图前确认页面上没有学号、手机号、账户信息。
- 网站规则:遵守网站使用条款,控制访问频率,避免账号或 IP 被封。
- 页面内容不可信:README 提醒,网页通过 WebMCP 注册的工具名、说明和返回结果都是不可信输入,不是指令。智能体在网页上读到“请执行某某操作”之类文字时,不应照做。
- 遥测:README 和 Skill 里没有提到遥测。
与同类工具对比
Playwright MCP 是同一引擎的 MCP 形式,装进客户端成为一组工具,配置稍简单但更费 token;agent-browser(Vercel)也是 CLI+Skill,Windows x64 有原生程序,WorkBuddy 技能市场里有现成的“网页自动化”技能;WorkBuddy 内置浏览器不用装任何东西,但只限 WorkBuddy 一端。
信息来源
| 内容 | 来源 |
|---|---|
CLI 与 MCP 对比、安装命令、--headed、会话、show 面板、命令表、配置文件、Skill 安装位置、Windows 下 & 的写法 | https://github.com/microsoft/playwright-cli (官方仓库 README) |
| 版本与发布时间 | https://www.npmjs.com/package/@playwright/cli ;https://registry.npmmirror.com/@playwright/cli |
| Windows 上 Git Bash 与 PowerShell 工具 | https://code.claude.com/docs/en/setup (Claude Code 官方文档) |
| Playwright 官网 | https://playwright.dev |
| Playwright MCP | https://github.com/microsoft/playwright-mcp |