SuperAPI AI 工具集

playwright-skill

测试与质量

查看项目

更新于 10-15 15:23

技能介绍

用途

playwright-skill 是一个基于 Playwright 的浏览器自动化与网页测试技能,适合需要真实浏览器完成测试或自动化任务的场景。用户可以针对具体任务编写自定义 JavaScript 代码,而不局限于预置脚本。

主要能力

  • 导航与交互:打开页面、点击、双击、填写输入框、勾选/取消勾选、选择下拉项、带延迟输入等。
  • 等待策略:等待导航(waitForURL)、等待加载状态(waitForLoadState('networkidle'))、等待元素出现或隐藏(waitForSelector)。
  • 截图:整页截图或对单个元素截图,可保存到 /tmp。
  • 页面侦察:截图、统计按钮/链接等元素数量并输出文本,便于在未知 DOM 结构时先了解页面,再执行操作。
  • 网络与控制台:拦截请求并返回模拟响应(page.route)、等待接口响应(waitForResponse)、捕获浏览器控制台输出。
  • 响应式测试:在不同视口(如桌面、平板、手机)下测试并截图。
  • 功能测试示例:登录流程、表单填写与提交、链接有效性检查、错误处理与超时设置等。

使用方式

前置条件:

  • Node.js(从 https://nodejs.org 安装)。
  • playwright npm 包:npm install playwright(会自动安装无头 Chromium)。

基本判断流程:任务开始前先判断服务器是否已在运行。若已运行,静态 HTML 可直接导航(file:// 或 http://),动态 Web 应用建议采用“先侦察、后操作”;若未运行,则需启动服务器:单服务器直接启动后测试,多服务器则全部启动并协调测试。

服务器检测与启动:

  • Mac/Linux:lsof -i :3000;Windows:netstat -ano | findstr :3000。
  • 可在脚本中通过 child_process 的 spawn 启动 npm run dev,监听输出,等待就绪后再运行测试,结束后 kill 服务器。

脚本约定:

  • 测试脚本写入 /tmp,例如 /tmp/playwright-test-*.js,不写入技能目录或用户项目,便于自动清理。
  • 默认使用可见浏览器 chromium.launch({ headless: false }),除非用户明确要求无头模式。
  • URL 通过脚本顶部的 TARGET_URL 常量参数化,避免硬编码。
  • 可用 slowMo 放慢操作便于观察。
  • 建议使用 try-catch 并在 finally 中关闭浏览器等资源。

适用场景

  • 视觉测试:不同视口截图、对比视觉变化、测试响应式设计。
  • 功能测试:登录流程、表单验证、导航流程、错误处理。
  • 校验:检查失效链接、验证图片加载、页面加载时间、可访问性检查。
  • 自动化:自动填表、按用户流程点击、从页面提取数据、生成报告。

限制与注意事项

  • 需要 Node.js 与 playwright npm 包作为前置依赖。
  • 对动态 Web 应用(SPA、React、Vue 等),在检查 DOM 前应先等待 networkidle,否则 DOM 可能尚未就绪。
  • 避免使用固定超时,应使用 waitForSelector 或 waitForLoadState 等等待策略。
  • 选择器建议使用 text=、role= 或 data 属性,而非脆弱的 CSS 选择器。
  • 不使用无头模式作为默认行为,除非用户明确要求。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。