SuperAPI AI 工具集

playwright-skill

测试与质量

查看项目

更新于 10-16 02:44

技能介绍

用途

playwright-skill 是一个通用型浏览器自动化技能,基于 Playwright 实现。用户描述想要测试或自动化的内容后,该技能会为其编写自定义 Playwright 代码并执行,适用于页面测试、表单填写、截图、链接检查、登录流程验证、响应式设计检查等浏览器任务。

主要能力

  • 自动检测本地正在运行的开发服务器(detectDevServers),减少硬编码 URL。
  • 按用户请求编写自定义 Playwright 脚本,不局限于预置脚本。
  • 支持页面测试、多视口响应式测试、登录流程测试、表单填写与提交、断链检查、带错误处理的截图等常见模式。
  • 提供辅助函数:safeClick(带重试的安全点击)、safeType(带清空的安全输入)、takeScreenshot(带时间戳截图)、handleCookieBanner(处理 Cookie 横幅)、extractTableData(提取表格数据)等。
  • 支持通过环境变量配置自定义 HTTP 请求头,用于标识自动化流量、获取 LLM 优化响应或全局添加认证令牌。
  • 支持内联执行简单任务,无需创建文件。

使用方式

首次使用需在技能目录执行安装:

cd $SKILL_DIR
npm run setup

该命令安装 Playwright 与 Chromium 浏览器,仅需执行一次。

执行流程:

  1. 检测开发服务器(本地测试时优先执行):
cd $SKILL_DIR && node -e "require('./lib/helpers').detectDevServers().then(servers => console.log(JSON.stringify(servers)))"

若检测到 1 个服务器则自动使用;检测到多个则询问用户;未检测到则询问 URL 或协助启动开发服务器。

  1. 将测试脚本写入 /tmp,例如 /tmp/playwright-test-*.js,脚本顶部以 TARGET_URL 常量参数化 URL。

  2. 从技能目录执行:

cd $SKILL_DIR && node run.js /tmp/playwright-test-page.js

简单任务可内联执行:

cd $SKILL_DIR && node run.js "
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();
await page.goto('http://localhost:3001');
await page.screenshot({ path: '/tmp/quick-screenshot.png', fullPage: true });
console.log('Screenshot saved');
await browser.close();
"

自定义请求头配置示例:

PW_HEADER_NAME=X-Automated-By PW_HEADER_VALUE=playwright-skill \
  cd $SKILL_DIR && node run.js /tmp/my-script.js
PW_EXTRA_HEADERS='{"X-Automated-By":"playwright-skill","X-Debug":"true"}' \
  cd $SKILL_DIR && node run.js /tmp/my-script.js

适用场景

  • 本地开发服务器的页面功能与视觉测试。
  • 多视口(桌面、平板、移动)响应式设计检查。
  • 登录、表单提交等交互流程验证。
  • 页面截图与断链检查。
  • 需要自定义 HTTP 请求头的自动化请求场景。

限制与注意事项

  • 技能可安装在不同位置(插件系统、手动全局安装、项目级安装),执行前需根据 SKILL.md 所在位置确定技能目录并替换 $SKILL_DIR。
  • 测试文件必须写入 /tmp,不得写入技能目录或用户项目。
  • 默认使用可见浏览器(headless: false),仅在用户明确要求无头或后台执行时才使用 headless: true。
  • 需先执行 npm run setup 安装 Playwright 与 Chromium。
  • 元素未找到时需添加等待,如 waitForSelector。
  • 高级功能(选择器最佳实践、网络拦截与 API 模拟、认证与会话管理、视觉回归测试、移动设备模拟、性能测试、调试技巧、CI/CD 集成等)参见 API_REFERENCE.md。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。