webapp-testing

skillcreatorai/ai-agent-skills · updated Apr 8, 2026

$npx skills add https://github.com/skillcreatorai/ai-agent-skills --skill webapp-testing
0 commentsdiscussion
summary

webapp-testing

skill.md

Web App Testing with Playwright

Setup

npm init playwright@latest

Basic Test Structure

import { test, expect } from '@playwright/test';

test('homepage has title', async ({ page }) => {
  await page.goto('http://localhost:3000');
  await expect(page).toHaveTitle(/My App/);
});

test('can navigate to about page', async ({ page }) => {
  await page.goto('http://localhost:3000');
  await page.click('text=About');
  await expect(page).toHaveURL(/.*about/);
});

Common Actions

Navigation

await page.goto('http://localhost:3000');
await page.goBack();
await page.reload();

Clicking

await page.click('button');
await page.click('text=Submit');
await page.click('#submit-btn');
await page.click('[data-testid="submit"]');

Form Input

await page.fill('input[name="email"]', 'test@example.com');
await page.fill('#password', 'secret123');
await page.selectOption('select#country', 'USA');
await page.check('input[type="checkbox"]');

Waiting

await page.waitForSelector('.loaded');
await page.waitForURL('**/dashboard');
await page.waitForResponse('**/api/data');
await page.waitForTimeout(1000); // Avoid if possible

Assertions

await expect(page.locator('h1')).toHaveText('Welcome');
await expect(page.locator('.items')).toHaveCount(5);
await expect(page.locator('button')).toBeEnabled();
await expect(page.locator('.modal')).toBeVisible();
await expect(page.locator('input')).toHaveValue('test');

Screenshots

// Full page
await page.screenshot({ path: 'screenshot.png', fullPage: true });

// Element only
await page.locator('.chart').screenshot({ path: 'chart.png' });

Console Logs

page.on('console', msg => console.log(msg.text()));
page.on('pageerror', err => console.error(err.message));

Network Interception

await page.route('**/api/data', route => {
  route.fulfill({
    status: 200,
    body: JSON.stringify({ items: [] })
  });
});

Running Tests

# Run all tests
npx playwright test

# Run specific file
npx playwright test tests/login.spec.ts

# Run in headed mode
npx playwright test --headed

# Run with UI
npx playwright test --ui

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.841 reviews
  • Zaid White· Dec 28, 2024

    Solid pick for teams standardizing on skills: webapp-testing is focused, and the summary matches what you get after install.

  • Pratham Ware· Dec 24, 2024

    We added webapp-testing from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Sophia Park· Dec 24, 2024

    Keeps context tight: webapp-testing is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Yuki Thompson· Dec 8, 2024

    I recommend webapp-testing for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Yuki Ndlovu· Nov 27, 2024

    webapp-testing fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Omar Okafor· Nov 15, 2024

    webapp-testing is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Hiroshi Gupta· Nov 7, 2024

    We added webapp-testing from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Chinedu Thompson· Oct 26, 2024

    Solid pick for teams standardizing on skills: webapp-testing is focused, and the summary matches what you get after install.

  • Chinedu Desai· Oct 18, 2024

    Registry listing for webapp-testing matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Dev Thompson· Oct 6, 2024

    Useful defaults in webapp-testing — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

showing 1-10 of 41

1 / 5