Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计提醒

browser-qa浏览器质量保证

Agent Skill

browser-qa 用于处理浏览器自动化、网页检查和页面信息提取,适合在 Codex、Claude、Cursor、Gemini CLI 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

318

周安装

13

GitHub Stars

公开资料未说明

下载量

103
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:browser-qa(浏览器质量保证)
来源仓库:https://github.com/rogeriochaves/skills
仓库路径:skills/browser-qa
安装命令:
npx skills add https://github.com/rogeriochaves/skills --skill browser-qa
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/rogeriochaves/skills --skill browser-qa

简介

browser-qa 用于处理浏览器自动化、网页检查和页面信息提取,适合打开页面或验证前端流程。

  • 适用于需要 Agent 读取网页内容或进行前端交互验证的场景。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需确认权限范围和联网需求。
  • 安装前建议核实维护状态及是否会触发文件读写或命令执行操作。
  • 可结合原始 README 和仓库路径进一步验证具体用法和功能边界。

SKILL.md

Browser QA

You're about to drive a real browser to verify a feature. This skill exists because there are three browser stacks available (Playwright MCP, Claude-in-Chrome MCP, computer-use MCP), they have very different failure modes, and picking the wrong one for the wrong stage of work burns wall clock for no reason.

First-time setup — DO THIS BEFORE ANYTHING ELSE

You will be blocked mid-task if you wait until you need a permission to ask for it. Ask for everything up front, in parallel, in the very first message of the QA phase:

  1. Request computer-use access for Chrome by calling mcp__computer-use__request_access with apps: ["Google Chrome"] and a one-sentence reason. Chrome is a tier-"read" app — you'll be able to take screenshots through the OS compositor but not click. That's exactly what you want: real-Chrome screenshots without having to fight focus.
  2. Verify the Claude-in-Chrome extension is connected by calling mcp__claude-in-chrome__tabs_context_mcp with createIfEmpty: true. If this returns an error, the extension isn't installed/enabled — stop and ask the user to install it rather than falling back to a worse stack.
  3. Verify Playwright MCP works by calling mcp__playwright__browser_close once (no-op if no tab; surfaces "browser already in use" lock errors early so you can pkill -f "mcp-chrome-" before they bite you mid-task).

Do all three in parallel in one message. If anything is missing, surface it immediately — don't start QA half-blind.

When to use which stack

Use Playwright MCP for iterative dev-loop QA — every "did this fix work?" check while you're still building. Reasons: snapshot-aware wait_for, fast happy paths (~10 s for a navigate + click + screenshot), failures are at the prompt layer (wrong URL, short wait threshold) and recoverable by retrying smarter. Headless Chromium screenshots are dense, clinical, and ideal for "is the UI correct?" reviews.

Use Claude-in-Chrome + computer-use for end-of-task artefacts — PR screenshots, demo GIFs, customer bug repros. Reasons: the captured surface is the *real* Chrome the user sees (tab strip, profile avatar, extensions, DEV stripe, the "Claude is active in this tab group" pill). That matches reviewer expectations. Don't use it for the inner dev loop — it's slower and has runtime-layer failures you can't fix from a prompt.

Use computer-use directly only for native desktop apps — anything that isn't a web app. For browsers, prefer the dedicated MCPs above; computer-use's role in browser QA is just the screenshot grab on top of CiC.

Failure modes by stack (so you don't relearn them)

Playwright MCP failures — all fixable from your side:

  • Stale browser lock from a previous session — pkill -f "mcp-chrome-" then retry.
  • 404s from guessing URL paths — read the project's routing config (Next.js pages//app/, React Router, file-based routers, etc.) before navigating. Don't assume the URL pattern from the feature name.
  • browser_take_screenshot rejects subdir paths and /tmp/ ("outside allowed roots") — use a flat filename in cwd, then mv it after.
  • wait_for text undershoots portal-based components (Radix, Headless UI, Chakra v3, MUI Modal). Wait for the *content* of the portal (e.g. a field label, a heading inside the dialog), not the trigger that opened it.
  • Clicking visible text via evaluate often doesn't trigger the right handler. Many component libraries (Chakra, Radix, shadcn/ui, MUI) attach click handlers to inner elements like a <button> or an icon trigger, not to the table row or list item the user *visually* sees. Walk up/down the DOM to find the actual interactive element — usually a <button> or [role="button"] — and click that.
  • Cookie set in evaluate may be lost across navigations. If your app redirects unauthenticated requests, navigate first to a *non-redirecting* endpoint (a static asset, a JSON API route, anything that returns 200 without bouncing), set the cookie there, then navigate to the target.

Claude-in-Chrome failures — runtime-layer, harder to recover:

  • Backgrounded-tab throttling. Chrome aggressively pauses background tabs. If your CiC tab isn't the foreground tab in the user's Chrome window, React/Next will not hydrate, document.querySelectorAll('p').length will sit at 0, and your polling JS will return {timeout: true} indefinitely. Once stuck, the next javascript_tool call typically hits a 45 s CDP Runtime.evaluate timeout. Mitigation: take a screenshot via mcp__claude-in-chrome__computer action screenshot *before* you start polling — that brings the tab to the front. Or open the LangWatch tab in its own Chrome window the user has visible.
  • Content filter redacts page text. document.body.innerText and outerHTML come back as [BLOCKED: Cookie/query string data] when the page contains anything that looks like session state. Use targeted querySelectorAll checks instead (Array.from(document.querySelectorAll('p')).some(p => p.innerText === 'X')).
  • Cookie reads blocked, cookie writes work. Don't try to read document.cookie to verify auth. Instead fetch('/api/auth/session').then(r => r.json()) and check user.email.
  • Query-string URLs sometimes fail to render. Direct navigation to ?drawer.open=... URLs occasionally drops the query string. Click through the UI flow instead.
  • Distorted/blank screenshots. When the viewport hasn't been laid out (because the tab was throttled), computer-use__screenshot returns a blank gradient. If that happens, the tab is frozen — re-navigate, don't retry the screenshot.
  • First screenshot of a fresh CiC session shows loading spinners. The polling loop fires before tRPC queries resolve. Wait for actual content (e.g. a row label), not just document.title.

Performance expectations

From a 3-runs-each benchmark on a real "settings → open drawer → screenshot" QA flow:

StackHappy pathWorst observedFailure modes
Playwright~12 s~60 s (debug)Prompt-layer, retryable
CiC + CU~9 s warm~280 s frozenRuntime-layer, sometimes terminal

Tool-call counts are identical on the happy path (8–9 calls). The difference is what each call returns and how often the runtime hangs. CiC's *warm* happy path is faster than PW's, but its tail is much worse — one CDP timeout costs you 45 s.

The QA flow itself

  1. Pick a dev server port that isn't fighting other agents or hard-coded auth callbacks. If the project uses an external auth provider (Auth0, Clerk, NextAuth with OAuth, Supabase, Cognito, etc.), pick a port that's already in the callback allowlist — making up an arbitrary port will silently fail the redirect. Otherwise, pick something out of the way (e.g. high four-digit) so you don't collide with whatever else the user has running.
  2. Seed test data via a script, not the UI. Write a small setup script that creates whatever rows you need (user, session token, sample records) directly via the project's DB client, ORM, or seed mechanism. Faster than clicking through onboarding, repeatable across runs, and survives session expiry mid-task.
  3. For Playwright runs: navigate → wait_for actual content → click → wait_for next content → screenshot. Always wait for *something the user would see*, not just document.readyState.
  4. For CiC runs: tabs_context_mcptabs_create_mcpnavigate → take a screenshot immediately to defeat background-tab throttling → poll for content → click → poll for next content → screenshot.
  5. Take screenshots at the moments a reviewer would care about — initial state, mid-flow, final state. Three is usually enough; ten is noise.
  6. Verify the feature, then verify the unhappy paths. "Happy path works" *and* "the obvious error case shows a clear message" *and* "form validation rejects bad input". The bug is almost always in the path you didn't QA.
  7. Don't claim the feature works until you saw it work in a browser screenshot. Tests passing is necessary, not sufficient.

Screenshot handling

  • Never commit screenshots to the repo unless they're explicitly user-facing docs assets. Put them in .claude/, bench/, or another gitignored location.
  • Upload to https://img402.dev/ for PR comments and bug reports: curl -F image=@screenshot.png https://img402.dev/api/free Returns a URL you can drop into a PR body / Slack message.
  • Embed the URLs in the PR description, not as committed files.

Ending the QA phase

You are done with browser QA when you can answer all of these "yes":

  • I navigated through the feature like a user would, not just to the screen that proves my code path runs.
  • I tried the unhappy paths (missing config, bad input, network failure simulation if relevant).
  • I have screenshots of the happy path *and* the most important edge case.
  • The screenshots are uploaded and linked from the PR.
  • I noticed at least one rough UX edge during QA and either fixed it or filed it.

If you can't say yes to all of those, you haven't QA'd yet — you've smoke-tested. Go back and use the feature.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.89%
按下载量换算38

Claude

30.37%
按下载量换算31

Cursor

19.16%
按下载量换算20

Gemini CLI

9.26%
按下载量换算10

安全审计

Gen Agent Trust Hub

可疑

Socket

可疑

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills