跳到主内容

course materials · 2026 秋季本科

工具说明:Playwright CLI

Week 7 · 2026-10-20 · 工具说明

返回本周材料

同一个浏览器引擎的命令行+Skill 形式,更省上下文;安装、Skill 放置与 WorkBuddy 端用法。

本页目录

项目介绍

**它是什么。**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 CLIPlaywright MCP
智能体怎么调用经 Bash 或 PowerShell 执行命令,按 Skill 说明操作客户端连接 MCP 服务器,得到二十多个 browser_* 工具
页面信息怎么给模型快照默认存成文件,模型按需读取每步把页面结构直接返回给模型
装法npm install -g 装 CLI,再装 Skillclaude 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 MCPhttps://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 这种接入方式。

要你亲手做的部分

  1. 安装 Node.js(下载安装包、点“下一步”,可能有管理员授权弹窗)。
  2. 需要的话安装 Git for Windows。
  3. 点智能体和 WorkBuddy 沙箱的权限请求(看清命令和域名)。
  4. 遇到要登录的网站,自己在 --headed 弹出的窗口里登录,不把密码交给智能体。
  5. 本工具不需要 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-scriptsnpm 11.20 起默认不跑安装脚本npm install-scripts ls 看是哪个包;确认需要再 npm install-scripts approve <包名>
install --skills 开始下载 Chromium没找到 Chrome 或 EdgeWindows 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 MCPhttps://github.com/microsoft/playwright-mcp