9.2 KiB
Playwright浏览器自动化技能
浏览器自动化 Playwright Claude技能 测试 Python
Claude Code 的 Playwright 技能
作为 Claude 技能的通用浏览器自动化工具
这是一个 Claude 技能,使 Claude 能够即时编写和执行任意 Playwright 自动化脚本——从简单的页面测试到复杂的多步骤流程。以 Claude Code 插件 的形式打包,便于安装和分发。
Claude 会根据您的浏览器自动化需求自主决定何时使用此技能,仅加载特定任务所需的最少信息。
使用 Claude Code 构建。
功能特性
- 任意自动化任务 - Claude 针对您的具体需求编写自定义代码,不局限于预置脚本
- 默认可见浏览器 - 通过
headless=False实时查看自动化过程 - 零模块解析错误 - 通用执行器确保正确的模块访问
- 渐进式信息披露 - 简洁的 SKILL.md,完整 API 参考仅在需要时加载
- 安全清理 - 智能临时文件管理,无竞态条件
- 全面的辅助函数 - 常见任务的可选工具函数
- PEP 723 元数据 - 所有脚本包含内联依赖规范
- 始终使用 Playwright 1.57.0 - 固定精确版本以保持一致性
安装
本仓库以 Claude Code 插件 的形式组织,包含一个技能。您可以将其安装为插件(推荐)或将其提取为独立技能。
了解目录结构
本仓库使用带嵌套结构的插件格式:
playwright-py-skill/ # 插件根目录
├── .claude-plugin/ # 插件元数据
└── skills/
└── playwright-py-skill/ # 实际技能目录
└── SKILL.md
Claude Code 期望技能直接位于 .claude/skills/ 下的文件夹中,因此手动安装需要提取嵌套的技能文件夹。
前置条件
- Python 3.10 或更高版本(PEP 723 支持所需)
- Chromium 浏览器(Playwright 1.57.0 对应的正确版本)- 需单独安装
uv包管理器(用于运行带有 PEP 723 元数据的脚本)
注意: 此技能不会安装浏览器。Chromium 必须单独安装,且版本须与 Playwright 1.57.0 匹配。
方式一:插件安装(推荐)
通过 Claude Code 的插件系统安装,支持自动更新和团队分发:
# 将本仓库添加为市场源
/plugin marketplace add akaihola/playwright-py-skill
# 安装插件
/plugin install playwright-py-skill@playwright-py-skill
# 验证安装(自动安装 playwright==1.57.0)
cd ~/.claude/plugins/marketplaces/playwright-py-skill/skills/playwright-py-skill
uv run run.py --help
运行 /help 验证安装,确认技能已可用。
方式二:独立技能安装
若不使用插件系统,仅提取技能文件夹进行安装:
全局安装(随处可用):
# 克隆到临时位置
git clone https://github.com/akaihola/playwright-py-skill.git /tmp/playwright-py-skill-temp
# 仅将技能文件夹复制到全局技能目录
mkdir -p ~/.claude/skills
cp -r /tmp/playwright-py-skill-temp/skills/playwright-py-skill ~/.claude/skills/
# 进入技能目录并运行配置(自动安装 playwright==1.57.0)
cd ~/.claude/skills/playwright-py-skill
uv run run.py --help
# 清理临时文件
rm -rf /tmp/playwright-py-skill-temp
项目级安装:
# 克隆到临时位置
git clone https://github.com/akaihola/playwright-py-skill.git /tmp/playwright-py-skill-temp
# 仅将技能文件夹复制到您的项目
mkdir -p .claude/skills
cp -r /tmp/playwright-py-skill-temp/skills/playwright-py-skill .claude/skills/
# 进入技能目录并运行配置(自动安装 playwright==1.57.0)
cd .claude/skills/playwright-py-skill
uv run run.py --help
# 清理临时文件
rm -rf /tmp/playwright-py-skill-temp
为何采用此结构? 插件格式需要 skills/ 目录来组织插件内的多个技能。作为独立技能安装时,您只需要内层的 skills/playwright-py-skill/ 文件夹内容。
方式三:下载发布包
- 从 GitHub Releases 下载并解压最新发布包
- 仅将
skills/playwright-py-skill/文件夹复制到:- 全局:
~/.claude/skills/playwright-py-skill - 项目:
/path/to/your/project/.claude/skills/playwright-py-skill
- 全局:
- 进入技能目录并运行配置:
cd ~/.claude/skills/playwright-py-skill # 或您的项目路径 uv run run.py --help
验证安装
运行 /help 确认技能已加载,然后让 Claude 执行一个简单的浏览器任务,例如"测试 google.com 是否可以加载"。
快速开始
安装完成后,只需让 Claude 测试或自动化任意浏览器任务。Claude 将编写自定义 Playwright 代码、执行并返回带有截图和控制台输出的结果。
使用示例
测试任意页面
"测试首页"
"检查联系表单是否正常工作"
"验证注册流程"
视觉测试
"在移动端和桌面端截取仪表盘截图"
"跨不同视口测试响应式设计"
交互测试
"填写注册表单并提交"
"点击主导航逐项测试"
"测试搜索功能"
验证
"检查失效链接"
"验证所有图片正常加载"
"测试表单验证"
工作原理
- 描述您要测试或自动化的内容
- Claude 为任务编写自定义 Playwright 代码
- 通用执行器(run.py)以正确的模块解析方式运行代码
- 浏览器打开(默认可见)并执行自动化
- 显示结果,包含控制台输出和截图
配置
默认设置:
- 无头模式:
False(除非明确要求,否则浏览器可见) - 慢动作:
100ms(便于观察) - 超时:
30s - 截图: 保存到
/tmp/ - Playwright 版本: 始终为
1.57.0(精确版本)
项目结构
playwright-py-skill/
├── .claude-plugin/
│ ├── plugin.json # 分发用插件元数据
│ └── marketplace.json # 市场配置
├── skills/
│ └── playwright-py-skill/ # 实际技能(Claude 会发现此目录)
│ ├── SKILL.md # Claude 读取的内容
│ ├── run.py # 通用执行器(正确的模块解析)
│ ├── lib/
│ │ └── helpers.py # 可选工具函数
│ └── API_REFERENCE.md # 完整 Playwright API 参考
├── README.md # 本文件 - 用户文档
├── CONTRIBUTING.md # 贡献指南
└── LICENSE # MIT 许可证
高级用法
Claude 将在需要时自动加载 API_REFERENCE.md,获取关于选择器、网络拦截、身份验证、视觉回归测试、移动端模拟、性能测试和调试的全面文档。
依赖项
- Python 3.10+(PEP 723 支持所需)
uv包管理器(用于运行带有 PEP 723 元数据的脚本)- Playwright 1.57.0(通过 PEP 723 运行脚本时自动安装)
- Chromium 浏览器(需单独安装对应正确版本)
执行模式
所有脚本均包含 PEP 723 元数据块:
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "playwright==1.57.0",
# "aiohttp>=3.9.0",
# ]
# ///
# 您的 Playwright 代码...
运行 uv run script.py 时,会自动安装 PEP 723 块中指定的精确依赖项。
故障排除
Playwright 未安装?
进入技能目录并运行 uv run run.py --help(通过 PEP 723 自动安装)。
模块未找到错误?
确保通过 run.py 运行自动化脚本,它负责处理模块解析。
浏览器未打开?
确认已设置 headless=False。除非请求无头模式,否则技能默认显示浏览器。
Chromium 版本错误? 请单独安装与 Playwright 1.57.0 对应的正确 Chromium 版本。该技能不安装浏览器。
需要安装所有浏览器? 如需其他浏览器(firefox、webkit),请单独安装。该技能默认 Chromium 已安装。
什么是技能?
Agent 技能 是包含指令、脚本和资源的文件夹,Agent 可以发现并使用它们来更准确、高效地完成任务。当您让 Claude 测试网页或自动化浏览器交互时,Claude 会发现此技能、加载必要的指令、执行自定义 Playwright 代码,并返回带有截图和控制台输出的结果。
此 Playwright 技能实现了开放 Agent 技能规范,使其与各 Agent 平台兼容。
贡献
欢迎贡献。Fork 本仓库,创建功能分支,提交您的更改,然后发起 Pull Request。详情参见 CONTRIBUTING.md。
了解更多
- Agent 技能规范 - Agent 技能的开放规范
- Claude Code 技能文档
- Claude Code 插件文档
- 插件市场
- API_REFERENCE.md - 完整 Playwright 文档
- GitHub Issues
许可证
MIT 许可证 - 详情参见 LICENSE 文件。