💡 用自然语言指挥 AI 操作浏览器,自动完成测试、抓取、表单填写
**难度: ** ⭐⭐ 进阶 | **阅读时间: ** 6 分钟
前言
你是不是也遇到过这些场景:
-
想自动化测试网页,但写 Selenium 脚本太麻烦
-
想抓取网页数据,但怕被封 IP
-
想让 AI 帮你操作浏览器,但不知道如何集成
-
用 Playwright CLI 写脚本,但每次都要手动调试
**今天介绍的 Playwright MCP,就是来解决这些问题的。 **
简单说:**让 AI 直接控制浏览器,你只需要用自然语言描述任务。 **
什么是 Playwright MCP?
Playwright 是微软开源的浏览器自动化框架,可以控制 Chrome、Firefox、Safari 等浏览器。
MCP(Model Context Protocol)是让 AI 助手连接外部工具的协议。
┌─────────────────┐ ┌──────────────┐ ┌─────────────┐
│ AI 编程助手 │────▶│ MCP 服务器 │────▶│ 浏览器 │
│ (Cline/Cursor) │ │ (Playwright) │ │(Chrome 等) │
└─────────────────┘ └──────────────┘ └─────────────┘
**核心优势: **
-
✅ 无需视觉模型,使用结构化可访问性树
-
✅ 更节省 token,不需要截图分析
-
✅ 确定性操作,避免基于截图的歧义
5 分钟快速开始
1. 安装(2 分钟)
# 安装 Playwright MCP
npx @playwright/mcp@latest
# 安装浏览器(首次使用需要)
npx playwright install
# 验证安装
node -v # 需要 Node.js 18+
2. 配置 MCP(2 分钟)
在你的 AI 助手配置中添加:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
**不同助手的配置位置: **
| AI 助手 | 配置文件位置 |
|--------|------------|
| Cline | VS Code 设置 → MCP 配置 |
| Cursor | 设置 → Features → MCP |
| Claude Code | ~/.claude/settings.json |
| Windsurf | 设置 → MCP Servers |
3. 开始使用(1 分钟)
配置完成后,重启 AI 助手,然后就可以这样对话:
**导航网页: **
请打开 https://github.com 并告诉我 trending repositories 有哪些
**填写表单: **
帮我打开 https://example.com/login,填写用户名 test@example.com 和密码 123456,然后点击登录
**数据抓取: **
访问 https://news.ycombinator.com,提取前 10 篇文章的标题和链接
实战演示
示例 1:GitHub Trending 数据抓取
**用户输入: **
打开 GitHub Trending,提取今日 Python 项目 Top 5
**AI 输出: **
已获取今日 Python Trending Top 5:
1. microsoft/playwright-mcp - ⭐ 12.5k
让 AI 助手通过 MCP 控制浏览器...
2. ...
示例 2:自动填写表单
**用户输入: **
打开登录页面,填写用户名和密码,点击登录
**AI 输出: **
✅ 已导航到登录页面
✅ 已填写用户名
✅ 已填写密码
✅ 已点击登录按钮
登录成功!
示例 3:跨页面数据收集
**用户输入: **
访问掘金 AI 标签页,收集前 20 篇文章的标题和阅读量
**AI 输出: **
已收集 20 篇文章数据:
| 标题 | 阅读量 |
|------|--------|
| AI 写 UI 太丑?... | 13k |
| 90% 程序员还在... | 3.0k |
| ... | ... |
技术架构
┌──────────────────────────────────────────┐
│ Playwright MCP Server │
├──────────────────────────────────────────┤
│ MCP Protocol Layer │
│ ├─ Tool Registry │
│ └─ Session Manager │
├──────────────────────────────────────────┤
│ Browser Automation │
│ ├─ Accessibility Tree Parser │
│ ├─ Element Locator │
│ └─ Action Executor │
├──────────────────────────────────────────┤
│ Browser Drivers │
│ ├─ Chromium │
│ ├─ Firefox │
│ └─ WebKit │
└──────────────────────────────────────────┘
**技术栈: **
-
TypeScript
-
@modelcontextprotocol/sdk
-
Playwright
-
Node.js 18+
可用工具列表
安装完成后,AI 可以使用以下工具:
| 工具 | 描述 |
|------|------|
| browser_snapshot | 捕获当前页面的可访问性快照 |
| browser_click | 点击页面上的元素 |
| browser_type | 在输入框中输入文本 |
| browser_select | 选择下拉菜单选项 |
| browser_hover | 悬停在元素上 |
| browser_press | 按下键盘按键 |
| browser_navigate | 导航到指定 URL |
| browser_close | 关闭浏览器 |
常见问题
Q1: 支持哪些浏览器?
支持主流浏览器:
-
✅ Chromium(默认)
-
✅ Firefox
-
✅ WebKit(Safari 内核)
-
✅ Chrome
Q2: 需要视觉模型吗?
**不需要。 ** Playwright MCP 使用结构化的可访问性树,而非截图,所以不需要视觉模型,更节省 token。
Q3: 会被网站封禁吗?
合理使用不会被封禁。建议:
-
控制请求频率
-
遵守 robots.txt
-
仅用于个人学习和研究
Q4: 和 Playwright CLI 有什么区别?
| 特性 | CLI | MCP |
|------|-----|-----|
| 适用场景 | 高吞吐量编码代理 | 需要持久状态的代理 |
| 调用方式 | 命令行 | 自然语言 |
| 状态管理 | 无状态 | 有状态 |
故障排除
问题 1: 浏览器无法启动
**可能原因: ** 未安装浏览器或路径错误
**解决方案: **
npx playwright install
问题 2: MCP 服务器无法连接
**可能原因: ** Node.js 版本过低
**解决方案: **
node -v # 检查版本
brew upgrade node # macOS 升级
问题 3: 操作超时
**可能原因: ** 网页加载慢或元素不存在
**解决方案: **
-
检查网络连接
-
确认元素选择器正确
-
增加超时时间
开发计划
-
支持更多浏览器(Edge、Opera)
-
增加截图对比功能
-
支持录制回放功能
-
添加自定义选择器
-
支持多标签页操作
总结
本文介绍了 Playwright MCP 的核心用法:
-
是什么:让 AI 直接控制浏览器的 MCP 服务器
-
优势:无需视觉模型,结构化数据,节省 token
-
5 分钟上手:安装 → 配置 → 使用
-
应用场景:自动化测试、数据抓取、表单填写
学习资源
-
Playwright 官方文档:playwright.dev
-
MCP 协议文档:modelcontextprotocol.io
关于系列
这是《AI 开发者效率手册》系列的第 2 篇。
**上一篇: ** 如何用 MCP 在 5 分钟内部署 AI 工具
**后续文章预告: **
-
#003 Context Engineering:让 AI 更懂你的上下文
-
#004 GitMCP:让 AI 读懂你的代码仓库
-
#005 LangGraph 入门:构建多 Agent 工作流
-
...(共 17 篇)
**关注我,不错过后续更新。 **
*本文遵守 CC BY-NC-SA 4.0 许可协议,转载请注明出处。 *