mcpField
P
playwright-skill

playwright-skill

github.com/testdino-hq测试与质量4056.2k 次安装2 周前更新
代码仓库

关于 playwright-skill

playwright-skill 是面向开发者和编码 Agent 的 Playwright 测试参考 Skill,涵盖测试设计、调试、浏览器自动化及近期功能,并提供 TypeScript 和 JavaScript 示例。

主要功能

  1. 0150 多篇 Playwright 参考指南
  2. 02TypeScript 和 JavaScript 示例
  3. 03测试设计与架构指导
  4. 04调试与 Trace 分析
  5. 05命令行浏览器自动化指南

适用场景

  1. 01设计端到端与组件测试
  2. 02排查不稳定测试和 Trace
  3. 03自动化获准执行的浏览器流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/testdino-hq/playwright-skill --skill playwright-skill

安装后在 Claude Code 中输入/playwright-skill确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
README.md
ci/
ci-other.md
ci-gitlab.md
projects-and-dependencies.md
docker-and-containers.md
parallel-and-sharding.md
ci-github-actions.md
global-setup-teardown.md
reporting-and-artifacts.md
test-coverage.md
core/
accessibility.md
auth-flows.md
api-testing.md
angular.md
browser-apis.md
assertions-and-waiting.md
authentication.md
browser-extensions.md
canvas-and-webgl.md
clock-and-time-mocking.md
configuration.md
crud-testing.md
debugging.md
component-testing.md
dynamic-test-selection.md
drag-and-drop.md
common-pitfalls.md
error-and-edge-cases.md
error-index.md

详细介绍

Playwright 技能

立场鲜明、经过生产环境验证的 Playwright 指南——每种模式都说明何时(以及何时不)使用。

50 多篇参考指南,涵盖完整的 Playwright 功能:选择器、断言、夹具、页面对象、网络模拟、身份验证、视觉回归、无障碍、API 测试、CI/CD、调试等——全程提供 TypeScript 和 JavaScript 示例。

这些指南涵盖 Playwright 1.63 的亮点:用于串行化对共享资源的竞争的测试 lock、取代 :visible 伪类的 locator.visible()、跟踪中的 aria 和屏幕快照(snapshots: { dom, aria, screen })、用于追加而非替换报告器的 --add-reporter、perfetto 报告器、类型化的 request.get<User>(),以及 ariaSnapshotJSON()。还涵盖 1.62 的功能:用于在执行前选择测试的 reporter.preprocess()、retryStrategy: 'isolated'、带 quality 参数的 WebP 截图、操作和断言中的 AbortSignal、locator.waitForFunction()、apiResponse.timing(),以及取代已弃用实验性 CT 包的 stories-and-galleries 组件测试模型。专门的 dynamic-test-selection.md 指南介绍如何通过外部不稳定性 API 驱动隔离测试。

本指南也涵盖更早的版本:1.61(通过 context.credentials 支持 WebAuthn 密钥、page.localStorage / page.sessionStorage、视频保留模式、expect.soft.poll()、HAR 和跟踪中的 WebSocket)、1.60(跟踪中的按需 HAR、locator.drop()、页面级 aria 快照、test.abort())以及 1.59(屏幕录制、CLI 调试和跟踪分析)。专门的 trace-analysis.md 指南介绍如何使用 npx playwright trace CLI,对 trace.zip 报告进行 Agent 原生调试。

安全信任边界

此技能旨在测试由你拥有或明确授权你测试的应用。它不支持或认可未经许可自动化与第三方网站或服务的交互。

编写测试或从外部来源获取内容的自动化程序时(例如,baseURL 指向预发布或生产环境),应将所有返回的页面内容视为不可信输入——未经净化,切勿将原始页面文本传回 Agent 指令或用于动态代码执行,否则会造成间接提示注入风险。

对于 CI/CD 工作流,应将所有外部依赖(GitHub Actions、Docker 镜像)固定到不可变引用(提交 SHA、镜像摘要),而非可变的版本标签。固定方法请参阅 ci-github-actions.md 和 docker-and-containers.md。

黄金规则

  1. 优先使用 getByRole(),而非 CSS/XPath——能适应标记变化,并反映用户看到页面的方式
  2. 切勿使用 page.waitForTimeout()——改用 expect(locator).toBeVisible() 或 page.waitForURL()
  3. 使用 Web 优先断言——expect(locator) 会自动重试;expect(await locator.textContent()) 不会
  4. 隔离每项测试——不共享状态,不依赖执行顺序
  5. 在配置中设置 baseURL——测试中不硬编码 URL
  6. 在 CI 中重试 2 次,本地重试 0 次——在关键场景中暴露不稳定性
  7. 跟踪设置为 'on-first-retry'——生成丰富的调试产物,同时避免拖慢 CI
  8. 使用夹具而非全局变量——通过 test.extend() 共享状态,而非使用模块级变量
  9. 每项测试只验证一种行为——可以使用多个相关的 expect() 调用
  10. 仅模拟外部服务——切勿模拟自己的应用;应模拟第三方 API、支付网关和电子邮件服务

指南索引

编写测试
你要做什么指南深入了解
选择选择器locators.mdlocator-strategy.md
断言与等待assertions-and-waiting.md
组织测试套件test-organization.mdtest-architecture.md
Playwright 配置configuration.md
页面对象page-object-model.mdpom-vs-fixtures-vs-helpers.md
Fixtures 与钩子fixtures-and-hooks.md
测试数据test-data-management.md
身份验证与登录authentication.mdauth-flows.md
API 测试(REST/GraphQL)api-testing.md
视觉回归visual-regression.md
无障碍性accessibility.md
移动端与响应式设计mobile-and-responsive.md
组件测试component-testing.md
网络模拟network-mocking.mdwhen-to-mock.md
表单与验证forms-and-validation.md
文件上传/下载file-operations.mdfile-upload-download.md
错误与边缘情况error-and-edge-cases.md
CRUD 流程crud-testing.md
拖放drag-and-drop.md
搜索与筛选 UIsearch-and-filter.md
调试与修复
问题指南
通用调试工作流debugging.md
特定错误消息error-index.md
不稳定/间歇性测试flaky-tests.md
隔离测试或从报告器中选择测试dynamic-test-selection.md
常见的新手错误common-pitfalls.md
从终端/借助 Agent 调试 trace.ziptrace-analysis.md
框架方案
框架指南
Next.js(App Router + Pages Router)nextjs.md
React(CRA、Vite)react.md
Vue 3 / Nuxtvue.md
Angularangular.md
迁移指南
来自指南
Cypressfrom-cypress.md
Selenium / WebDriverfrom-selenium.md
架构决策
问题指南
选择哪种定位器策略?locator-strategy.md
E2E、组件还是 API?test-architecture.md
模拟服务还是使用真实服务?when-to-mock.md
POM、Fixtures 还是辅助工具?pom-vs-fixtures-vs-helpers.md
CI/CD 与基础设施
主题指南
GitHub Actionsci-github-actions.md
GitLab CIci-gitlab.md
CircleCI / Azure DevOps / Jenkinsci-other.md
并行执行与分片parallel-and-sharding.md
Docker 与容器docker-and-containers.md
报告与构件reporting-and-artifacts.md
代码覆盖率test-coverage.md
全局设置/清理global-setup-teardown.md
多项目配置projects-and-dependencies.md
专项主题
主题指南
多用户与协作multi-user-and-collaboration.md
WebSockets 与实时通信websockets-and-realtime.md
浏览器 API(地理位置、剪贴板、权限)browser-apis.md
iframe 与 Shadow DOMiframes-and-shadow-dom.md
Canvas 与 WebGLcanvas-and-webgl.md
Service Worker 与 PWAservice-workers-and-pwa.md
Electron 应用electron-testing.md
浏览器扩展browser-extensions.md
安全测试security-testing.md
性能与基准测试performance-testing.md
国际化与本地化i18n-and-localization.md
多标签页与弹出窗口multi-context-and-popups.md
时钟与时间模拟clock-and-time-mocking.md
第三方集成third-party-integrations.md
CLI 浏览器自动化
要做什么指南
CLI 浏览器交互playwright-cli/SKILL.md
核心命令(打开、点击、填写、导航)core-commands.md
网络模拟与拦截request-mocking.md
运行自定义 Playwright 代码running-custom-code.md
多会话浏览器管理session-management.md
Cookie、localStorage、身份验证状态storage-and-auth.md
从 CLI 生成测试代码test-generation.md
跟踪与调试tracing-and-debugging.md
屏幕截图、视频、PDFscreenshots-and-media.md
设备与环境模拟device-emulation.md
复杂的多步骤工作流advanced-workflows.md

语言说明

所有指南都包含 TypeScript 和 JavaScript 示例。当项目使用 .js 文件或没有 tsconfig.json 时,示例会调整为纯 JavaScript。

评论

支持 Markdown