catalog/repos/91fapiao-cn--playwright-browser-skill.md

434 lines
11 KiB
Markdown
Raw Permalink Normal View History

2026-04-06 15:47:33 +08:00
# Playwright浏览器自动化技能
2026-04-06 19:01:37 +08:00
`浏览器自动化` `Playwright` `MCP` `OpenClaw` `Node.js`
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
# OpenClaw 的 Playwright 浏览器技能
2026-04-06 15:47:33 +08:00
一个功能强大的浏览器自动化技能,基于 Playwright 构建,通过 MCP 协议为 OpenClaw 提供 101 个完整的浏览器操作能力。
[![Windows](https://img.shields.io/badge/Windows-支持-blue.svg)](WINDOWS_GUIDE.md)
[![Node.js](https://img.shields.io/badge/Node.js-18%2B-green.svg)](https://nodejs.org/)
[![Playwright](https://img.shields.io/badge/Playwright-1.40%2B-orange.svg)](https://playwright.dev/)
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
中文文档 | [English](README_EN.md)
## ✨ 特性
- 🌐 **完整的浏览器控制** - 支持 Chromium、Firefox、WebKit
- 📱 **设备模拟** - 模拟 iPhone、Android 等移动设备
- 🎯 **智能选择器** - CSS、ARIA、文本、标签等多种选择方式
2026-04-06 19:01:37 +08:00
- 📸 **截图和录制** - 页面截图、元素截图、PDF 生成、视频录制
2026-04-06 15:47:33 +08:00
- 🌍 **网络控制** - 请求拦截、响应模拟、离线模式
- 🔍 **内容提取** - 文本、HTML、链接、属性等
-**性能监控** - 页面性能指标、控制台日志
2026-04-06 19:01:37 +08:00
- 🎨 **高级功能** - Cookie 管理、LocalStorage、地理位置、时间控制
2026-04-06 15:47:33 +08:00
## 📦 安装
### 前置要求
- Node.js 18 或更高版本
- npm 或 yarn
2026-04-06 19:01:37 +08:00
- Windows 10/11、macOS 或 Linux
2026-04-06 15:47:33 +08:00
### 安装方式
#### 方式一:下载发行版(推荐,适合普通用户)
**最简单的安装方式!** 下载预编译的独立包,无需构建,开箱即用。
**Windows 用户:**
1. 下载 [playwright-browser-skill-windows-v2.1.0.zip](https://github.com/91fapiao-cn/playwright-browser-skill/releases)
2. 解压到任意目录
3. 双击运行 `auto-deploy.cmd`(推荐)或 `auto-deploy.ps1`
4. 重启 OpenClaw开始使用
**注意:** 推荐使用 `.cmd` 文件,大部分 Windows 电脑默认禁止运行 PowerShell 脚本。
**Mac/Linux 用户:**
1. 下载 [playwright-browser-skill-macos-linux-v2.1.0.tar.gz](https://github.com/91fapiao-cn/playwright-browser-skill/releases)
2. 解压:`tar -xzf playwright-browser-skill-macos-linux-v2.1.0.tar.gz`
3. 进入目录并运行:`chmod +x auto-deploy.sh && ./auto-deploy.sh`
4. 重启 OpenClaw开始使用
**发行版优势:**
- ✅ 无需 `npm install`,节省时间
- ✅ 无需构建,开箱即用
- ✅ 包含完整依赖,离线可用
- ✅ 一键自动部署
- ✅ 适合非开发者用户
#### 方式二:从源码安装(适合开发者)
```bash
# 克隆仓库
git clone https://github.com/91fapiao-cn/playwright-browser-skill.git
cd playwright-browser-skill
# 安装依赖
npm install
# 安装浏览器驱动
npm run install-browsers
# 构建项目
npm run build
```
## 🚀 使用方法
### 一键自动部署(推荐)
我们提供了跨平台的自动部署脚本,支持中英文版本,可以自动检测 OpenClaw 配置路径并完成所有配置:
#### Windows (PowerShell) - 推荐
```powershell
# 中文版
.\auto-deploy.ps1
# 英文版
.\auto-deploy-en.ps1
# 跳过构建(如果已构建)
.\auto-deploy.ps1 -SkipBuild
# 指定自定义路径
.\auto-deploy.ps1 -OpenClawPath "C:\custom\path\.openclaw"
```
#### Windows (CMD)
```cmd
REM 中文版
auto-deploy.cmd
REM 英文版
auto-deploy-en.cmd
REM 跳过构建
auto-deploy.cmd --skip-build
REM 指定自定义路径
auto-deploy.cmd --openclaw-path "C:\custom\path\.openclaw"
```
#### Mac/Linux
```bash
# 添加执行权限(首次使用)
chmod +x auto-deploy.sh auto-deploy-en.sh
# 中文版
./auto-deploy.sh
# 英文版
./auto-deploy-en.sh
# 跳过构建
./auto-deploy.sh --skip-build
# 指定自定义路径
./auto-deploy.sh --openclaw-path "/custom/path/.openclaw"
```
**自动部署功能:**
- ✅ 自动检测 OpenClaw 配置路径
- ✅ 自动构建项目(可选跳过)
- ✅ 自动部署 Skill 文件
- ✅ 自动配置 MCP 服务器
- ✅ 自动备份现有配置
- ✅ 支持自定义安装路径
📖 [查看详细部署文档](AUTO_DEPLOY_README.md)
### 手动部署
如果需要手动部署,请参考以下步骤:
#### 1. 部署 Skill 文件
```bash
# Windows
copy skill-package\skills\SKILL.md %USERPROFILE%\.openclaw\skills\playwright-browser\
# macOS/Linux
cp skill-package/skills/SKILL.md ~/.openclaw/skills/playwright-browser-skill/
```
#### 2. 配置 MCP 服务器
`~/.openclaw/settings/mcp.json` 中添加:
```json
{
"mcpServers": {
"playwright-browser": {
"command": "node",
"args": ["<项目路径>/dist/mcp-server.js"],
"disabled": false,
"autoApprove": ["browser_launch", "browser_goto", "browser_close"]
}
}
}
```
#### 3. 重启 OpenClaw
重启 OpenClaw 以加载新的技能。
#### 4. 在 OpenClaw 中启用技能
重启后,在 OpenClaw 对话中输入:
```
请使用 Playwright Browser Skill 技能来访问互联网和控制浏览器
```
或者直接测试:
```
使用 Playwright Browser Skill 启动浏览器并访问 example.com
```
这样 OpenClaw 就会知道使用这个技能来处理所有浏览器相关的任务。
## 📚 工具列表
2026-04-06 19:01:37 +08:00
### 浏览器管理8 个)
2026-04-06 15:47:33 +08:00
- `browser_launch` - 启动浏览器
- `browser_close` - 关闭浏览器
- `browser_new_page` - 创建新页面
- `browser_switch_page` - 切换页面
- 更多...
2026-04-06 19:01:37 +08:00
### 页面导航4 个)
- `browser_goto` - 导航到 URL
2026-04-06 15:47:33 +08:00
- `browser_go_back` - 返回上一页
- `browser_go_forward` - 前进
- `browser_reload` - 刷新页面
2026-04-06 19:01:37 +08:00
### 元素交互12 个)
2026-04-06 15:47:33 +08:00
- `browser_click` - 点击元素
- `browser_fill` - 填写表单
- `browser_type` - 输入文本
- `browser_select` - 选择下拉框
- 更多...
2026-04-06 19:01:37 +08:00
### 内容提取11 个)
2026-04-06 15:47:33 +08:00
- `browser_get_text` - 获取文本
2026-04-06 19:01:37 +08:00
- `browser_get_html` - 获取 HTML
2026-04-06 15:47:33 +08:00
- `browser_get_links` - 获取链接
- 更多...
[查看完整工具列表](skill-package/skills/SKILL.md)
## 💡 使用示例
### 无头模式说明
浏览器支持两种运行模式:
**有界面模式headless: false** - 推荐用于调试和开发
```javascript
browser_launch({ "headless": false }) // 显示浏览器窗口
```
**无头模式headless: true** - 推荐用于生产环境和自动化
```javascript
browser_launch({ "headless": true }) // 后台运行,不显示窗口
// 或者省略参数,默认为无头模式
browser_launch()
```
**无头模式优势:**
- ⚡ 更快的执行速度
- 💾 更低的资源占用
- 🔒 适合服务器环境
- 🤖 适合批量自动化任务
### 基础网页访问
```javascript
// 1. 启动浏览器(有界面模式,便于观察)
browser_launch({ "headless": false })
// 2. 访问网页
browser_goto({ "url": "https://example.com" })
// 3. 获取标题
browser_get_title()
// 4. 截图
browser_screenshot({ "path": "screenshot.png", "fullPage": true })
// 5. 关闭浏览器
browser_close()
```
### 无头模式自动化示例
```javascript
// 无头模式运行,适合自动化任务
browser_launch({ "headless": true })
browser_goto({ "url": "https://example.com" })
browser_get_title()
browser_screenshot({ "path": "screenshot.png" })
browser_close()
```
### 表单填写
```javascript
// 使用有界面模式便于调试
browser_launch({ "headless": false })
browser_goto({ "url": "https://example.com/login" })
browser_fill({ "selector": "#username", "value": "user@example.com" })
browser_fill({ "selector": "#password", "value": "password123" })
browser_click({ "selector": "button[type='submit']" })
browser_wait_for_selector({ "selector": ".dashboard" })
browser_close()
```
### 数据抓取
```javascript
// 数据抓取推荐使用无头模式,速度更快
browser_launch({ "headless": true })
browser_goto({ "url": "https://example.com/products" })
browser_count({ "selector": ".product-item" })
browser_get_links()
browser_evaluate({
"script": "Array.from(document.querySelectorAll('.price')).map(e => e.textContent)"
})
browser_close()
```
[查看更多示例](skill-package/skills/SKILL.md#使用示例)
## 🧪 测试
```bash
# 运行所有测试
npm test
# 运行基础测试
npm run test:basic
# 运行高级测试
npm run test:advanced
# 运行交互测试
npm run test:interaction
2026-04-06 19:01:37 +08:00
# 运行 MCP 服务器测试
2026-04-06 15:47:33 +08:00
npm run test:mcp
```
## 📖 文档
- [配置指南](CONFIGURATION_GUIDE.md) - 无头模式、浏览器选项等详细配置说明
- [自动部署指南](AUTO_DEPLOY_README.md) - 跨平台自动部署详细说明 | [English](AUTO_DEPLOY_README_EN.md)
2026-04-06 19:01:37 +08:00
- [完整工具文档](skill-package/skills/SKILL.md) - 所有 101 个工具的详细说明
2026-04-06 15:47:33 +08:00
- [Windows 使用指南](WINDOWS_GUIDE.md) - Windows 平台特定说明
- [Mac/Linux 使用指南](MAC_LINUX_GUIDE.md) - Mac 和 Linux 平台特定说明
- [快速开始指南](QUICK_START_WINDOWS.md) - 快速上手教程
- [API 文档](API.md) - API 参考
- [架构说明](ARCHITECTURE.md) - 项目架构
## 🔧 开发
### 项目结构
```
playwright-browser-skill/
├── src/
│ ├── index.ts # 核心功能实现
│ ├── mcp-server.ts # MCP 服务器
│ └── tools-registry.ts # 工具注册表
├── skill-package/
│ ├── skills/
2026-04-06 19:01:37 +08:00
│ │ └── SKILL.md # 技能定义文件
2026-04-06 15:47:33 +08:00
│ └── settings/
│ └── mcp.json # MCP 配置示例
├── test/ # 测试文件
├── examples/ # 示例代码
└── docs/ # 文档
```
### 构建
```bash
# 开发模式(监听文件变化)
npm run dev
# 生产构建
npm run build
```
## 🌍 平台支持
| 平台 | 状态 | 说明 |
|------|------|------|
| Windows 10/11 | ✅ 完全支持 | 已测试 |
| macOS | ✅ 完全支持 | 理论支持 |
| Linux | ✅ 完全支持 | 理论支持 |
## 🤝 贡献
欢迎贡献!请查看 [贡献指南](CONTRIBUTING.md)。
## 📝 更新日志
2026-04-06 19:01:37 +08:00
### v2.1.02026
2026-04-06 15:47:33 +08:00
- 🚀 新增跨平台自动部署脚本
- 🔍 自动检测 OpenClaw 配置路径
- 💾 自动备份现有配置
- 📦 支持自定义安装路径
- 📚 完整的自动部署文档
2026-04-06 19:01:37 +08:00
### v2.1.02026
- ✨ 新增 13 个高级工具(从 88 个增加到 101 个)
- 🎯 完善键盘鼠标控制mouseDown、mouseUp、keyboardInsertText
- 🔍 增强选择器功能getByAltText、getByTitle
- ⏱️ 完整时间控制pauseClock、resumeClock
- 📊 代码覆盖率支持getCoverage、stopCoverage
- 🌐 地理位置管理clearGeolocation、touchscreenTap
- ⏳ 高级等待功能waitForFunction、waitForLoadState
- 📈 总体覆盖率从 69% 提升到 88%
### v2.0.02026
2026-04-06 15:47:33 +08:00
- ✨ 新增 88 个完整的浏览器操作工具
- 📚 完整的中文文档
- 🪟 Windows 平台完整支持
- 🎯 智能选择器支持
- 📸 截图和录制功能
- 🌍 网络控制和模拟
### v1.0.0
- 🎉 初始版本
## 📄 许可证
MIT License - 详见 [LICENSE](LICENSE) 文件
## 🙏 致谢
- [Playwright](https://playwright.dev/) - 强大的浏览器自动化框架
- [OpenClaw](https://openclaw.ai/) - AI 助手平台
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP 协议
## 📞 支持
2026-04-06 19:01:37 +08:00
- 📧 邮箱91fapiao@gmail.com
- 🐛 问题反馈:[GitHub Issues](https://github.com/91fapiao-cn/playwright-browser-skill/issues)
- 💬 讨论:[GitHub Discussions](https://github.com/91fapiao-cn/playwright-browser-skill/discussions)
2026-04-06 15:47:33 +08:00
2026-04-06 19:01:37 +08:00
## ⭐ Star 历史
2026-04-06 15:47:33 +08:00
如果这个项目对你有帮助,请给它一个 Star
---
2026-04-06 19:01:37 +08:00
**用 ❤️ 为 OpenClaw 社区打造**