mcpField
P
playwright-frontend

playwright-frontend

github.com/testdino-hq开发405203 次安装2 周前更新
代码仓库

关于 playwright-frontend

面向前端工程师的 Playwright 标记指南,帮助构建稳定、可机器识别的 DOM 定位约定。它先强调语义化和可访问标记,再在必要时使用稳定且唯一的 data-testid。

主要功能

  1. 01制定 data-testid 命名约定
  2. 02优先使用语义化 HTML 和可访问名称
  3. 03确保测试 ID 唯一且稳定
  4. 04为列表项使用稳定领域键
  5. 05统一使用 data-testid 属性

适用场景

  1. 01为自动化测试设计 DOM 定位方式
  2. 02为自定义控件添加稳定测试标识
  3. 03降低本地化或样式变更造成的测试脆弱性
  4. 04在 React、Vue、Angular 或 Svelte 中规范测试 ID

安装

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

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

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

附带文件data-testid-conventions.mdexamples.md

详细介绍

Playwright 前端(编写可定位标记)

目标读者:编写应用的前端工程师——与 core/ 中面向测试编写者的指南相对应。你要做的是在 DOM 上提供一份小巧、稳定、机器可读的契约,让测试和 AI Agent 都能确定性地定位元素,避免不稳定问题。

data-testid 是 UI 自动化层的公共 API:一旦测试或 Agent 依赖它,重命名就会成为破坏性变更。先编写无障碍标记,然后在自动化需要持久定位依据的地方,有意识地添加命名清晰、唯一且稳定的测试 ID。

指南索引

主题指南
data-testid 约定(使用时机、命名、唯一性、稳定性)data-testid-conventions.md
框架模式(React、Vue、Angular、Svelte)+ 集中管理 ID + 生产环境移除examples.md

黄金规则

  1. 优先使用语义化 HTML — 为元素提供真实的角色、标签或无障碍名称,以便 getByRole/getByLabel 能够正常工作;然后再添加测试 ID。
  2. 仅在角色、标签和文本不够用时添加 data-testid — 例如没有角色的自定义控件、范围容器、列表行,以及动态或本地化区域。若 getByRole 已能唯一定位某个控件,就不需要添加。
  3. 命名时确保全局唯一 — feature-component-element[-variant],使用 kebab-case。
  4. 列表项使用稳定的领域键作为后缀,绝不使用数组索引 — user-row-${user.id} ✅ / user-row-${index} ❌。
  5. 让值与文本、区域设置、样式和 DOM 位置解耦 — 这些都可能变化,测试 ID 则不应改变。
  6. 统一使用一种属性 — data-testid 是 Playwright 默认的 testIdAttribute;不要混用 data-test/data-qa。

相关内容

评论

支持 Markdown