Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
替换占位定位符为真实选择器(六级优先级)。触发:替换定位符、locator、selector、定位失败、元素找不到、DOM 分析。
$ npx skills add DanielSuo117/velocitai --skill locator-replacer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install DanielSuo117/velocitai locator-replacer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/DanielSuo117/velocitai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/locator-replacer .claude/skills/locator-replacer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "locator-replacer" agent skill from https://github.com/DanielSuo117/velocitai/tree/main/skills/locator-replacer into .claude/skills/locator-replacer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "locator-replacer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/DanielSuo117/velocitai/tree/main/skills/locator-replacerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add DanielSuo117/velocitai --skill locator-replacer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install DanielSuo117/velocitai locator-replacer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DanielSuo117/velocitai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/locator-replacer .agents/skills/locator-replacer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "locator-replacer" agent skill from https://github.com/DanielSuo117/velocitai/tree/main/skills/locator-replacer into .agents/skills/locator-replacer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "locator-replacer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add DanielSuo117/velocitai --skill locator-replacer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install DanielSuo117/velocitai locator-replacer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DanielSuo117/velocitai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/locator-replacer .cursor/skills/locator-replacer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "locator-replacer" agent skill from https://github.com/DanielSuo117/velocitai/tree/main/skills/locator-replacer into .cursor/skills/locator-replacer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "locator-replacer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/DanielSuo117/velocitai.git --path skills/locator-replacer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add DanielSuo117/velocitai --skill locator-replacer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install DanielSuo117/velocitai locator-replacer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DanielSuo117/velocitai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/locator-replacer .gemini/skills/locator-replacer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "locator-replacer" agent skill from https://github.com/DanielSuo117/velocitai/tree/main/skills/locator-replacer into .gemini/skills/locator-replacer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "locator-replacer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install DanielSuo117/velocitai locator-replacerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add DanielSuo117/velocitai --skill locator-replacer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/DanielSuo117/velocitai.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/locator-replacer .github/skills/locator-replacer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "locator-replacer" agent skill from https://github.com/DanielSuo117/velocitai/tree/main/skills/locator-replacer into .github/skills/locator-replacer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "locator-replacer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add DanielSuo117/velocitai --skill locator-replacer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install DanielSuo117/velocitai locator-replacer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DanielSuo117/velocitai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/locator-replacer .opencode/skills/locator-replacer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "locator-replacer" agent skill from https://github.com/DanielSuo117/velocitai/tree/main/skills/locator-replacer into .opencode/skills/locator-replacer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "locator-replacer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
locator-replacer替换占位定位符为真实选择器(六级优先级)。触发:替换定位符、locator、selector、定位失败、元素找不到、DOM 分析。
Locator Replacer is an agent skill from DanielSuo117/velocitai. 替换占位定位符为真实选择器(六级优先级)。触发:替换定位符、locator、selector、定位失败、元素找不到、DOM 分析。
Its SKILL.md is about 700 tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/priority-levels.md` and `references/troubleshooting.md`).
It sits in Testing & QA. The repository describes itself as: Next-generation UI automation harness powered by Python & Playwright. Chat with AI Agents to seamlessly generate, architect, and execute enterprise-grade UI test code. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit dfcca7e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pytestFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Locator Replacer loads about 703 tokens when it runs, and up to ~1.8k if it reads all its reference files. Until then it costs about 21 tokens; SKILL.md has 158 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from DanielSuo117/velocitai at commit dfcca7e, republished under its MIT licence (© DanielSuo117). 158 words, ~703 tokens.
.claude/skills/locator-replacer/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.text= 占位定位符替换为真实选择器按优先级从高到低,逐级尝试,选中即停。优先使用页面上已有的语义化信息, 避免依赖需要前端额外配合的属性。
| 级别 | 策略 | 抗什么 | 代价 |
|---|---|---|---|
| P0 | ARIA role + 可见文本 | CSS 重构、构建哈希 | 文案变更需同步 |
| P1 | 可见文本 | CSS 重构、构建哈希 | 文案变更需同步、可能不唯一 |
| P2 | 表单特有属性(name/placeholder/type) | 样式与文案变更 | 仅适用于表单控件 |
| P3 | 语义化 CSS class / id | 文案变更 | 样式重构即失效 |
| P4 | data-testid | 几乎全部 | 需前端配合添加 |
| P5 | 相对 XPath / CSS 结构 | —— | 最脆弱,最后手段 |
完整写法、判断依据与代码示例 → references/priority-levels.md
使用 agent-browser 打开目标页面,获取交互元素信息(工具选型遵循 agent-behavior P0.4,agent-browser 未安装时降级到 Playwright MCP):
操作步骤:
1. browser_navigate → 访问目标页面(已认证状态)
2. browser_snapshot → 获取页面无障碍树(accessibility tree)
3. browser_evaluate → 执行 JS 提取元素属性:
- document.querySelectorAll('[data-testid]') → 已有 testid
- document.querySelectorAll('[role]') → ARIA role
- document.querySelectorAll('button, a, input') → 交互元素对照页面对象中的每个占位定位符,按 P0→P5 逐级尝试,命中即停:
| 检查顺序 | 条件 | 使用 |
|---|---|---|
| P0 | 有 role + name | role=button[name='...'] |
| P1 | text= 唯一且稳定 | text=...(标记"已验证唯一") |
| P2 | 表单属性(placeholder/name/type) | [placeholder='...'] |
| P3 | 稳定 CSS class(非哈希) | css=.xxx |
| P4 | 有 data-testid | [data-testid='...'] |
| P5 | 以上均无 | 相对 XPath(≤3 层) |
class <PageName>(BasePage):
# 定位符 — 已替换为真实选择器(<日期>)
<PRIMARY_ACTION_BTN> = "role=button[name='<按钮文案>']" # P0: ARIA role
<SECONDARY_LINK> = "text=<链接文案>" # P1: text(已验证唯一)
PAGE_IDENTIFIER = "role=heading[name='<页面标题>']" # P0: ARIA role更新规则:
# P0: ARIA role / # P1: text / ... / # P4: testid / # P5: XPath)text= 经验证确实稳定且唯一,注释标记 # P1: text(已验证唯一)# 定位符 — 后续替换为实际选择器 注释# 定位符 — 已替换为真实选择器(日期)# 在对应角色的回归文件中跑指定用例(运行前向用户确认 --env,见 agent-behavior P0.2)
pytest framework/tests/<role>/test_<role>_flow.py --env=<pre|prod> -v -k "test_<story_name>"更新 docs/regression-points.md 中对应 PageObject 的"关键定位符"段。
替换完成后,逐项确认:
/html/body/...)sc-xxx, css-xxx, _module_xxx)div[3],除非列表取第 N 项)# P0 ~ # P5)同一文本重复、元素无稳定属性、构建后批量失效等症状的处理方式 → references/troubleshooting.md
© DanielSuo117, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/locator-replacer of DanielSuo117/velocitai.
Open the folder on GitHubat commit dfcca7e
Locator Replacer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Locator Replacer this skillDanielSuo117/velocitai | 158 | — | ~703 | Automated safety check: Pass | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing Bugsfossasia/eventyay-interpretation | 1.6k | 32 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| TDDpietheinstrengholt/rssmonster | 564 | 30 repos | ~906 | Automated safety check: Pass | MIT | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| TDDsanity-io/sanity | 6.4k | 20 repos | ~1k | Automated safety check: Pass | MIT |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
fossasia/eventyay-interpretation
Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.
pietheinstrengholt/rssmonster
Test-driven development. An agent skill from pietheinstrengholt/rssmonster.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
sanity-io/sanity
Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.
Ibrahim-3d/orchestrator-supaconductor
A skill your agent uses when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md…
DanielSuo117/velocitai
POM 分层与 context 共享决策树。触发:架构、分层、POM、Page Object、基类设计、新增角色. An agent skill from DanielSuo117/velocitai.
DanielSuo117/velocitai
ispageloaded() 四种验证模式与调用层级。触发:页面断言、ispageloaded、page loaded、页面加载验证。
DanielSuo117/velocitai
测试失败时免登跳转原地排查修复。触发:排查、纠错、debug、定位符失败、超时、元素找不到、断言失败. An agent skill from DanielSuo117/velocitai.
DanielSuo117/velocitai
表单保存后验证(Toast / 重定向 / 数据对比 / 富文本清空)。触发:保存验证、toast、重定向检测、Meta+A、保存成功判断。
DanielSuo117/velocitai
运行 pytest + 结构化分析失败原因。触发:运行测试、跑测试、run test、pytest、失败分析、allure。
DanielSuo117/velocitai
为已有 PageObject 增量添加回归测试点。触发:新增测试点、添加回归点、add test point、增加覆盖、扩展页面方法。
Categories
替换占位定位符为真实选择器(六级优先级)。触发:替换定位符、locator、selector、定位失败、元素找不到、DOM 分析。. Locator Replacer is an agent skill from DanielSuo117/velocitai.
Locator Replacer fits situations like: testing & QA work in your project.
Run `npx skills add DanielSuo117/velocitai --skill locator-replacer -a claude-code`. Or copy the skill folder (skills/locator-replacer in DanielSuo117/velocitai) into .claude/skills/locator-replacer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add DanielSuo117/velocitai --skill locator-replacer -a codex`. Or copy the skill folder (skills/locator-replacer in DanielSuo117/velocitai) into .agents/skills/locator-replacer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DanielSuo117/velocitai --skill locator-replacer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/locator-replacer, .gemini/skills/locator-replacer, .github/skills/locator-replacer and .opencode/skills/locator-replacer in your project.
Going by SKILL.md and its folder, Locator Replacer needs the command-line tools its instructions call (pytest). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Locator Replacer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 703 tokens (SKILL.md is roughly 2.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Locator Replacer: Web Application Testing (anthropics/skills, 180k stars), Diagnosing Bugs (fossasia/eventyay-interpretation, 1.6k stars), TDD (pietheinstrengholt/rssmonster, 564 stars) and TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
DanielSuo117 (a GitHub user) maintains it in DanielSuo117/velocitai, which has 158 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on September 27, 2026.
Source: DanielSuo117/velocitai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.