agentsclimarketplace

Webapp visual testing

Skill yeaight7/agent-powerups/skills/webapp-visual-testing

Use when a browser-facing UI needs visual verification, a layout bug or visual regression is reported, accessibility of an interactive component needs checking, or a browser workflow must be exercised end-to-end.From its SKILL.md

Install
npx -y skills add yeaight7/agent-powerups --skill webapp-visual-testing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.8 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it

Webapp Visual Testing

Collect visual and behavioral evidence from a web UI before declaring a feature complete or a bug fixed.

When to Use

  • A feature has a browser-facing UI component that requires visual verification
  • A layout bug or visual regression is reported
  • Accessibility of a new interactive component needs checking
  • A browser-based workflow (form, navigation, auth, modal) must be exercised end-to-end
  • A screenshot comparison is needed between two states or builds

Safety policy is handled by the browser-automation-safety skill — read it first if this is your first time using browser automation in this environment. Playwright MCP setup is in mcp/generic/playwright.json.

This skill covers the testing workflow: what to test, how to capture evidence, and how to report findings.

Inputs

  • Target URL or localhost route (dev server must be running)
  • Feature or interaction to test
  • Expected visual or behavioral outcome
  • Browser capability available: Playwright MCP, @playwright/test, or user-supplied screenshots

Workflow

1. Confirm prerequisites

# Check dev server
curl -s -o /dev/null -w "%{http_code}" http://localhost:<port>   # expect 200

# Check browser capability
apx mcp check playwright    # if using Playwright MCP
npx playwright --version    # if using @playwright/test

If no browser capability is available: ask the user for screenshots and continue with static analysis only.

2. Take a baseline snapshot

Navigate to the target URL and capture the initial state:

browser_navigate(url)
browser_snapshot()           # accessibility tree — roles, labels, focusable elements
browser_take_screenshot()    # visual state
browser_console_messages()   # check for load-time errors

Flag any console errors at page load before proceeding.

3. Exercise the interaction

Use semantic selectors in priority order (from browser-automation-safety):

  1. ARIA role + accessible name: getByRole('button', { name: 'Submit' })
  2. Visible text: getByText('Continue')
  3. Label: getByLabel('Email address')
  4. Test ID: getByTestId('submit-btn')
  5. Stable CSS selector: .submit-btn
  6. ⚠ Avoid: XPath, coordinate clicks, generated class names

Capture a screenshot after each significant state change: modal open, form submit, navigation, error state.

4. Check functional signals

SignalCheck
Console errorsAny uncaught exceptions or network errors after interaction?
Network requestsDid the expected API call fire? Did it return a success status?
DOM changesDid the expected element appear / disappear / update?
AccessibilityAre new elements keyboard-reachable and labelled correctly?

5. Document findings per scenario

SCENARIO: <what was tested>
EXPECTED: <what should happen>
OBSERVED: <what actually happened>
EVIDENCE: <screenshot filename or console excerpt>
STATUS: PASS / FAIL / NEEDS_REVIEW

ISSUES FOUND:
  [critical] <description> — <evidence reference>
  [major]    <description>
  [minor]    <description>

ACCESSIBILITY:
  <element>: role=<role>, label=<label>, keyboard=reachable/unreachable

6. Visual regression check (when a baseline exists)

If a prior screenshot is available:

  • Compare side-by-side for layout shifts, color changes, missing elements, overflow
  • Do not auto-approve visual diffs — present them and let the user decide

Output

Deliver:

  1. Screenshot filenames saved to a named artifact path (not system temp)
  2. Console error count and any non-trivial messages from load and interactions
  3. Per-scenario PASS / FAIL / NEEDS_REVIEW verdict
  4. Accessibility summary for new or changed interactive elements
  5. Visual regression notes if a prior baseline exists

Verification

  • At least one screenshot captured per tested scenario
  • Console errors checked at page load and after each interaction
  • All interactive elements in scope have accessible names and labels
  • Artifacts saved to a named path and reported to the user

Failure Modes

  • Dev server not running — check the port before navigating; do not guess at a URL
  • Browser capability missing — fall back to static HTML/CSS inspection + user screenshots
  • Page renders blank — check console errors before assuming a layout issue
  • Flaky outcome due to animation — use waitFor or take screenshots after animations settle

Sources / Inspiration

Inspired by anthropics/skills webapp-testing/SKILL.md. Extended with accessibility and visual regression guidance. Safety policy delegated to browser-automation-safety.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most e2e browser skills give in ~1.0k tokens

Counted across 499 of the 513 authors here whose files we hold, read 2026-09-06

  • Capture screenshots, videos, and traces on failurein 32 of 499, across 23 files
  • Close the browser when donein 22 of 499
  • Interact with elements using snapshot refsin 21 of 499, across 20 files
  • Wait for specific network responses instead of fixed timeoutsin 20 of 499, across 10 files
  • Keep tests independent with no shared statein 19 of 499, across 17 files
  • Use Page Object Model classes to encapsulate page interactionsin 19 of 499, across 9 files
  • Locate elements with data-testid attributesin 19 of 499, across 10 files
  • Quarantine flaky tests with fixme or skipin 17 of 499, across 7 files
  • Upload test artifacts after every CI runin 17 of 499, across 8 files
  • Wait on conditions instead of using fixed sleepsin 17 of 499, across 13 files
  • Clean up test data after each testin 17 of 499, across 16 files
  • Test user-visible behavior, not implementation detailsin 16 of 499, across 10 files

Said here and by no other author read

  • Confirm the dev server is running before navigating
  • Verify a browser capability is available
  • Ask the user for screenshots if no browser capability
  • Capture a baseline snapshot of the initial state
  • Flag console errors at page load before proceeding
  • Check console, network, DOM, and accessibility signals

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.