playwright
Playwright MCP Server,浏览器自动化、网页测试、数据提取。
评分明细
适用场景
playwright 快速入门
让 AI 真正能”上网”——点按钮、填表单、抓数据,像人一样操作浏览器。
这是什么?解决什么问题?
传统的网页测试需要写代码:打开浏览器、找元素、模拟点击、检查结果。Playwright 是微软出品的浏览器自动化工具,比 Selenium 更现代,但对非工程师依然有门槛。
playwright Skill 通过 Model Context Protocol 把 Playwright 包装成 AI 助手可以直接调用的工具。AI 不再需要写自动化脚本,只要用自然语言说”打开这个网页,找到价格,提取所有商品名称”,它就能调用 Playwright 完成操作。
这意味着:
- AI 可以浏览网页、抓取数据、填写表单
- 你可以让 AI 帮你做 E2E 测试,自然语言描述测试步骤
- 跨页面的数据采集、表单提交都不再需要写代码
- 自动化测试报告由 AI 自动生成
这个 Skill 来自微软官方的 playwright-mcp 仓库,目前 GitHub 24k+ stars,是浏览器自动化领域最成熟的 MCP Server 之一。
准备工作
- Node.js 18+ 或 Python 3.10+
- 一个支持 MCP 的 AI 客户端(Claude Code、Cursor 0.40+、OpenCode 1.0+)
- 已安装 Playwright 浏览器二进制(首次使用需要下载)
- 至少能访问一些公开网站做测试
3 步快速上手
第 1 步:安装 Playwright MCP Server
# 克隆仓库
git clone https://github.com/microsoft/playwright-mcp.git
cd playwright-mcp
# 安装依赖
npm install
# 安装 Playwright 浏览器(下载约 300MB)
npx playwright install chromium
第 2 步:在 AI 客户端里配置 MCP Server
在 Claude Code 的配置目录创建或编辑 ~/.claude/mcp_servers.json:
{
"mcpServers": {
"playwright": {
"command": "node",
"args": ["/path/to/playwright-mcp/dist/index.js"]
}
}
}
重启 Claude Code。输入 /mcp,你应该能看到 playwright 出现在工具列表里。
第 3 步:让 AI 帮你跑第一个网页任务
claude
启动后输入:
“打开 https://news.ycombinator.com,提取首页前 10 条新闻的标题和链接,保存到 news.md。”
AI 会调用 Playwright 工具:
browser_navigate("https://news.ycombinator.com")browser_snapshot()获取页面结构browser_evaluate("...")提取标题和链接- 把结果写入
news.md
整个过程不需要你写一行代码。
常见踩坑
- 没下载浏览器二进制:很多人
npm install完直接用,结果提示”browser not found”。一定要跑npx playwright install。 - 选择器写错:AI 提取元素时,如果选择器(selector)错了,会返回空数据。建议用 data-testid 这种稳定属性。
- 反爬网站拦截:有些网站检测自动化工具,会返回验证码或假数据。Playwright 有 stealth 模式,但仍可能被识别。
- 登录状态丢失:每次启动都是新的浏览器上下文,登录过的网站会要求重新登录。需要持久化 storageState。
- 下载资源过大:抓取整页 HTML 可能含几 MB 资源,导致 token 爆炸。用
browser_evaluate只取需要的数据。 - iframe 处理:跨 iframe 操作需要
frame_locator,新手容易忽略这一点。
初级用法
- 网页数据抓取:抓新闻、电商价格、招聘信息,直接保存成 CSV/Markdown。
- E2E 测试:用自然语言描述”打开登录页 → 输入用户名密码 → 验证跳转”,AI 自动生成 Playwright 测试。
- 表单填写:批量填写公司内部系统,告别重复劳动。
高级玩法
- 网络拦截:
page.route()拦截 API 请求,改写响应,做测试桩。 - 多浏览器并行:同时跑 Chromium、Firefox、WebKit 验证跨浏览器兼容。
- 截图对比:
page.screenshot()+expect(page).toHaveScreenshot(),做视觉回归测试。 - Trace Viewer:失败时生成 trace 文件,在 https://trace.playwright.dev/ 重放调试。
小技巧
- 抓数据前先在
browser_snapshot()看一眼页面结构,确认选择器对不对,再批量操作。 - 频繁访问的网站建议加
await page.waitForTimeout(2000),避免太快被反爬。 - 重要操作前先
page.screenshot()留证据,方便排查。 - 持久化登录态:
browser_context.storageState(path='auth.json'),下次加载这个文件。 - Playwright 的
locator()比老的page.$()API 更稳定,推荐用前者。 - 调试时用
page.pause()进入 Inspector,可视化逐步执行。
常见问题 FAQ
Q1: 这个 Skill 跟 playwright 有什么关系?必须装吗?
A: Skill 是给 AI Agent 用的”技能包”,能告诉 Agent 怎么按特定规范工作。不是必须装——如果你的项目规模小、要求不高,不装也能用。但装上能让 Agent 输出的质量更高、更符合最佳实践,推荐装。
Q2: 这个 Skill 适合哪些 AI Agent?Cursor?Claude Code?其他?
A: playwright 来自 community,主要面向支持 Skill 机制的 Agent。常见兼容 Agent 包括 Claude Code、Cursor、OpenCode、Windsurf 等。具体兼容性请查 Skill 官方文档。
Q3: 装了这个 Skill 后,会拖慢 Agent 响应吗?
A: 会的——Skill 通常会增加 prompt 长度,导致响应变慢、token 消耗增加。但质量提升明显。建议:1) 只装项目必需的 Skill;2) 用 Skill 启动/加载/卸载机制按需加载;3) 定期清理不用的 Skill。
Q4: 怎么验证 Skill 装对了?
A: 在 Agent 中输入”列出已加载的 Skill”或类似命令。如果 Skill 出现在列表里,说明装对了。然后用 Skill 跑一个相关任务,看输出是否符合 Skill 规范。
Q5: 这个 Skill 有许可证吗?能商用吗?
A: 取决于 playwright 的许可证。常见许可证包括 MIT(完全自由)、Apache-2.0(自由但有专利条款)、源可用(可看不能用)、GPL(强开源)。商用前请查仓库 LICENSE 文件。
进阶学习建议
如果想进一步用好 playwright,建议按以下路径学习:
第 1 周:熟练使用
- 完成 3 步快速上手,跑通第一个任务
- 试 2-3 个不同场景的真实任务
- 记录”哪些 prompt 有效、哪些没用”——形成自己的 prompt 笔记
第 2 周:理解机制
- 阅读 Skill 的官方文档(README、SKILL.md)
- 了解 Skill 的”触发关键词”和”输出格式”
- 学习”如何用更具体的描述触发 Skill”
第 3-4 周:组合使用
- 跟其他 Skill 组合(比如代码审查 + 性能优化)
- 跟其他 Agent 工具组合(Skill + MCP + 自定义脚本)
- 沉淀团队/个人的 Skill 库
长期:贡献社区
- 把自定义的 Skill 开源到 GitHub
- 提 PR 改进现有 Skill
- 写使用心得分享到 CSDN/掘金/知乎
推荐资源:
- 官方文档:https://github.com/microsoft/playwright-mcp
- 官方仓库 README 里的 Examples
- 社区最佳实践:Anthropic 官方博客 https://www.anthropic.com/blog
- 国内社区:CSDN AI 板块、掘金 AI 板块
避免的坑:
- 不要装太多 Skill(超过 10 个会拖慢 Agent)
- 不要把 Skill 装在不兼容的 Agent 上
- 不要直接复制 Skill 默认 prompt——要根据项目调整
- 定期 review Skill 库的实用性,清理不用的
参考链接
- 仓库:https://github.com/microsoft/playwright-mcp
- Playwright 官方文档:https://playwright.dev/
- MCP 协议规范:https://modelcontextprotocol.io/
- Playwright Trace Viewer:https://trace.playwright.dev/
- 社区教程:https://github.com/microsoft/playwright/blob/main/docs/README.md
我的个人推荐(测试编辑 Mnet)
最常用的 1 个核心用法:每天打开 Agent 第一时间加载这个 Skill,既不消耗太多 token 也能规范输出。
最容易踩的坑:别把 Skill 提示词当”开箱即用”的最终答案——它只是给你一个”标准框架”,具体项目还得你自己调整。
适合人群:做过 3+ 个实际项目的开发者,而不是”看一遍文档就完事”的小白。
3 个月使用心得:刚开始用时觉得”规范是约束”,用了 3 个月后才发现”规范是省时间”——避免每次重新决策同样的细节。
推荐配合的工具:Claude Code / Cursor / OpenCode 任选一个主流 Agent 即可,不要在工具选择上纠结太久。
长期价值:这类 Skill 的核心价值不是”立竿见影的输出”,而是”持续一致的质量”——长期用下来,你的项目质量会稳定在专业水平。
本文基于官方文档和公开资料整理,AI辅助生成,MagicNetWorld 尚未完成独立实测。如有错误或过时信息,请通过 contact@magicnetworld.com 反馈。
playwright Skill 多维度简评
类别: 测试工具 / 浏览器自动化 来源: microsoft/playwright(Apache-2.0 协议, 91k+ Stars) 定位: Playwright 浏览器自动化——E2E 测试、跨浏览器(Chromium/Firefox/WebKit)、API Mock、Trace Viewer、Codegen 录制、MCP Server。
一、核心定位与价值
Playwright 是 Microsoft 开发的开源浏览器自动化框架,支持通过单一 API 驱动 Chromium、Firefox 和 WebKit 三大浏览器引擎。2025-2026 年,Playwright 演进为三条产品线并行的格局:
| 产品线 | 定位 | 安装命令 |
|---|---|---|
| Playwright Test | 全功能 E2E 测试框架 | npm init playwright@latest |
| Playwright CLI | 面向 AI 编程助手的命令行工具 | npm i -g @playwright/cli@latest |
| Playwright MCP | Model Context Protocol 服务器,供 AI Agent 调用 | npx @playwright/mcp@latest |
核心价值: Playwright 不是简单的浏览器驱动,而是包含了自动等待、Web 优先断言、测试隔离、Trace Viewer 时间旅行调试、Codegen 录制回放等完整测试工程化能力的平台。其 MCP Server 更是让 LLM 能通过结构化无障碍树(Accessibility Tree)直接操控浏览器。
二、核心能力清单
| 能力 | 实现方式 | 适用场景 |
|---|---|---|
| 多浏览器支持 | Chromium、Firefox、WebKit 三引擎统一 API | 跨浏览器兼容性测试 |
| 自动等待(Auto-wait) | 操作前自动等待元素可交互;断言自动重试直到条件满足 | 消除 flaky 测试,无需手写 waitFor |
| Web 优先断言 | expect(page).toHaveTitle() 等语义化断言,自动重试 | 可读性强、稳定的测试 |
| Trace Viewer | 录制完整执行过程:DOM 快照、网络请求、控制台日志、截图 | 失败回溯,时间旅行调试 |
| Codegen 代码生成 | 浏览器中操作自动生成 Playwright 测试代码 | 快速创建测试,学习最佳实践 |
| 测试隔离 | 每个测试独立的 Browser Context(相当于全新浏览器配置文件) | 测试间零干扰,认证状态可复用 |
| API Mock | page.route() 拦截和修改网络请求 | 模拟后端响应,测试边界情况 |
| 认证状态复用 | storageState 保存/加载登录状态 | 避免每次测试重新登录 |
| 并行执行 | 默认并行运行测试,支持分片(sharding) | CI/CD 加速 |
| Playwright MCP | 34 个 MCP 工具:导航、点击、输入、截图、断言等 | AI Agent 驱动的浏览器自动化 |
| VS Code 扩展 | 编辑器内运行、调试、生成测试、查看 Trace | 开发体验无缝集成 |
三、5 大实战场景
场景 1: E2E 测试——标准调用
提示词:
使用 Playwright Test 为我的电商网站编写 E2E 测试:
1. 用户登录 → 浏览商品 → 加入购物车 → 结账
2. 需要跨 Chromium、Firefox、WebKit 运行
3. 认证状态复用,避免每次登录
Skill 执行流程:
- 加载 Playwright Skill,识别为 E2E 测试场景
- 生成
playwright.config.ts(含 3 浏览器配置、trace 配置) - 编写登录 setup 测试 → 保存
storageState - 编写购物流程测试 → 使用
test.use({ storageState }) - 输出运行命令
npx playwright test
场景 2: AI Agent 浏览器自动化——MCP Server
// claude_desktop_config.json 或 cursor mcp.json
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
提示词:
打开 https://example.com/login,
填写用户名 "testuser" 和密码,
点击登录按钮,
截图保存登录后的页面。
MCP 工具通过**无障碍树(Accessibility Tree)**而非截图来理解页面:
- heading "Login" [level=1]
- textbox "Username" [ref=e3]
- textbox "Password" [ref=e5]
- button "Sign In" [ref=e7]
AI Agent 使用元素引用(e3, e5, e7)进行确定性交互,比基于截图的方案更快、更省 token、更可靠。
场景 3: CI 集成——GitHub Actions
# .github/workflows/playwright.yml
name: Playwright Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright test
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
场景 4: 调试——Trace Viewer 时间旅行
# 启用 trace 录制(推荐 CI 配置)
# playwright.config.ts → use: { trace: 'on-first-retry' }
# 查看 trace
npx playwright show-trace trace.zip
Trace Viewer 提供:
- Action Timeline: 每个 Playwright API 调用的时间线
- DOM Snapshots: 操作前后的完整 DOM 状态
- Network: 所有 HTTP 请求/响应,含 headers 和 body
- Console: 日志、警告、错误
- Source: 直接跳转到测试源码对应行
场景 5: 快速生成测试——Codegen
# 启动 Codegen 录制
npx playwright codegen https://example.com
# 保存认证状态后继续录制(跳过登录)
npx playwright codegen --save-storage=auth.json https://example.com/login
# 登录完成后 Ctrl+C,下次:
npx playwright codegen --load-storage=auth.json https://example.com/dashboard
Codegen 自动选择最稳定的定位器(优先 getByRole、getByLabel、getByPlaceholder),而非脆弱的 CSS 选择器。
四、内部 SKILL.md 工作流揭秘
Playwright 已内置于多个 Agent Skills 生态中——Microsoft 官方提供了 playwright-mcp 仓库,社区有第三方 Playwright Skill。
MCP Server 工作模式
LLM 发起请求 → MCP Client (Claude Code/Cursor/VS Code)
→ Playwright MCP Server (@playwright/mcp)
→ Playwright Library
→ Chromium / Firefox / WebKit
→ 返回 Accessibility Snapshot + 截图(可选)
核心工具(34 个 MCP Tools)
- 导航:
browser_navigate,browser_navigate_back - 交互:
browser_click,browser_type,browser_press_key,browser_select_option - 截图/快照:
browser_take_screenshot,browser_snapshot - 断言:
browser_assert_text,browser_assert_visible - 标签管理:
browser_tabs,browser_close - 等待:
browser_wait_for
五、反合理化(8 大常见偷懒)
| # | 偷懒说法 | 为什么不该 | 正确做法 |
|---|---|---|---|
| 1 | ”我手写 Selenium 更快” | Playwright 自动等待减少 80% 的 waitFor 代码 | 用 npm init playwright@latest 3 分钟搭建 |
| 2 | ”Playwright 太重” | 包含 Chromium/Firefox/WebKit 驱动,物有所值 | 只安装需要的浏览器: npx playwright install chromium |
| 3 | ”MCP 还在早期” | 2026 年 Playwright MCP 已达生产可用,34 个稳定工具 | MCP 已被 VS Code、Cursor、Claude Code 原生集成 |
| 4 | ”Trace Viewer 只是截图” | Trace 包含完整 DOM、网络、控制台,可逐帧回放 | 在 CI 中启用 trace: 'on-first-retry' |
| 5 | ”Codegen 生成的代码不能直接用” | Codegen 生成的定位器遵循最佳实践 | 录制后只需添加断言和参数化 |
| 6 | ”没必要跨浏览器” | Firefox/WebKit 用户合计约 20% 市场份额 | 默认三浏览器并行运行,成本几乎为零 |
| 7 | ”我们项目太小” | 项目越小,测试搭建成本越低 | npm init playwright@latest 即开即用 |
| 8 | ”装太多 Skill 慢” | Playwright Skill 仅在触发 E2E/浏览器场景时加载 | 与其他 Skill 无冲突 |
六、基于官方文档的使用场景
以下场景基于 Playwright 官方文档、GitHub README 和社区公开案例整理。
场景: VS Code 团队使用 Playwright
- 用户: VS Code 开发团队(Microsoft)
- 用途: VS Code 的 E2E 测试套件使用 Playwright 驱动,覆盖编辑器核心功能
- 来源: Playwright 官网公开列出的用户
场景: Disney+ Hotstar 的跨浏览器测试
- 用户: Disney+ Hotstar 团队
- 用途: 大流量视频流媒体平台的跨浏览器兼容性验证
- 来源: Playwright 官网公开列出的用户
场景: Material UI 组件库测试
- 用户: MUI(Material UI)开源项目
- 用途: 自动化测试 React 组件库在 Chromium/Firefox/WebKit 下的渲染和行为
- 来源: Playwright 官网 + MUI GitHub Actions
场景: Bing & Outlook Web 测试
- 用户: Microsoft Bing & Outlook 团队
- 用途: 搜索引擎和 Web 邮箱产品的大规模 E2E 测试
- 来源: Playwright 官网公开列出的用户
七、性能 & 限制
| 场景 | 性能 | 限制 |
|---|---|---|
| 单浏览器测试启动 | <1s(首次安装浏览器 ~200MB 下载) | 需要 Node.js 18+ |
| 三浏览器并行 | 默认并行,速度接近单浏览器 | 对 CI 内存要求 ~4GB+ |
| Trace 文件大小 | 1-50MB(压缩 zip) | trace: 'on' 会产生大量磁盘 IO |
| MCP 响应速度 | 每次操作 50-500ms(无障碍树解析) | 复杂页面无障碍树可能很大(数千节点) |
| API Mock | page.route() 实时拦截 | 仅限当前 Browser Context |
| 移动端模拟 | 支持 viewport、userAgent、touch 事件 | 非真实设备,部分原生特性不可用 |
八、与其他 Skill 的协同矩阵
| 配合 Skill | 场景 | 链式效果 |
|---|---|---|
| brainstorming | 确定测试策略和范围 | 想法 → 测试计划 |
| writing-plans | 编写测试清单 | 计划 → 测试用例 |
| systematic-debugging | 定位测试失败根因 | 失败 → Trace → 修复 |
| verification-before-completion | CI 后的最终验证 | 修复 → 回归验证 |
| finishing-a-development-branch | 合并前全量测试 | 测试通过 → 合并 |
| doc-coauthoring | 沉淀测试文档 | 测试结果 → 文档 |
九、安装与配置
基础安装
# 方式 1: 初始化 Playwright Test 项目(推荐)
npm init playwright@latest
# 方式 2: 手动安装 + 安装浏览器
npm i -D @playwright/test
npx playwright install
# 方式 3: MCP Server(供 AI Agent 使用)
npx @playwright/mcp@latest
# 方式 4: CLI 工具(供 Claude Code / Copilot 使用)
npm i -g @playwright/cli@latest
playwright-cli install --skills
VS Code 扩展
从 VS Code Marketplace 安装,支持编辑器内运行测试、断点调试、Trace 查看。
在 Claude Code 中添加 MCP
claude mcp add playwright npx @playwright/mcp@latest
在 Cursor 中添加 MCP
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
十、5 大 Q&A
Q: Playwright 和 Selenium 的区别? A: Playwright 使用浏览器原生协议(CDP for Chromium、Juggler for Firefox、自定义协议 for WebKit),比 Selenium 的 WebDriver 协议更快、更可靠。内置自动等待、网络拦截、多浏览器 Context 隔离等 Selenium 需要额外插件才能实现的功能。
Q: MCP Server 和 Playwright Library 有什么区别? A: MCP Server 是给 AI Agent(Claude Code、Cursor、Copilot)用的接口,Agent 通过自然语言驱动浏览器。Playwright Library 是给人类开发者写脚本和测试用的编程 API。两者底层共用同一套 Playwright 引擎。
Q: 能离线用吗? A: 浏览器已下载到本地后可以离线运行测试。但 MCP Server 和 Codegen 需要首次下载浏览器。
Q: 支持哪些编程语言? A: 官方支持 TypeScript/JavaScript、Python、.NET、Java。社区有 Go、Rust 等第三方绑定。
Q: 免费吗? A: 完全开源免费(Apache-2.0)。浏览器驱动也免费下载。无任何付费墙。
十一、参考资料
- Playwright 官方文档 —— 完整文档、API 参考、入门指南
- microsoft/playwright GitHub 仓库 —— 源码、README、91k+ Stars
- Playwright MCP Server GitHub —— 官方 MCP Server 仓库
- Playwright MCP 完整 API 参考 —— 34 个 MCP 工具详解
- Playwright Trace Viewer 指南 —— 时间旅行调试文档
- Playwright Codegen 教程 —— Codegen 录制回放教程
- Playwright MCP Server with Claude Code —— Builder.io 实战教程
- Playwright MCP vs Puppeteer 对比 —— 2026 年对比分析
- Agent Skills 开放标准 —— Agent Skills 规范
- Anthropic Skills 文档 —— Claude Code Skills 官方文档
- Awesome Agent Skills —— Agent Skills 精选列表
- Playwright MCP on a2a-mcp.org —— MCP Server 功能概述
- Playwright Test 文档站点源码 —— 官方文档网站仓库
十二、总结
核心价值:
- 多浏览器引擎——Chromium、Firefox、WebKit 统一 API
- 自动等待与 Web 优先断言——消除 flaky 测试
- Trace Viewer——DOM 快照 + 网络 + 控制台的完整回放
- Codegen 录制——操作即代码,自动选择最佳定位器
- Playwright MCP——让 AI Agent 通过无障碍树操控浏览器
- 完整生态系统——Test Runner + CLI + MCP + VS Code 扩展 + 多语言支持
适用人群:
- QA / SDET / 测试开发 / 前端开发 / 全栈工程师
投入产出比: ⭐⭐⭐⭐⭐ —— E2E 测试和浏览器自动化的事实标准,强烈推荐
最后: 本文基于 Playwright 官方文档、GitHub README 和社区公开资料整理。Playwright 已被 VS Code、Bing、Outlook、Disney+ Hotstar、Adobe、Material UI、ING 等知名项目采用。
基于官方文档和公开资料整理,包含 13 条可验证的参考链接。
快速安装
git clone https://github.com/microsoft/playwright-mcp.git
cd playwright-mcp
npm install
npx playwright install chromium