webapp-testing
npx machina-cli add skill aiskillstore/marketplace/webapp-testing --openclawWeb Application Testing
This skill enables comprehensive testing and debugging of local web applications using Playwright automation.
When to Use This Skill
Use this skill when you need to:
- Test frontend functionality in a real browser
- Verify UI behavior and interactions
- Debug web application issues
- Capture screenshots for documentation or debugging
- Inspect browser console logs
- Validate form submissions and user flows
- Check responsive design across viewports
Prerequisites
- Node.js installed on the system
- A locally running web application (or accessible URL)
- Playwright will be installed automatically if not present
Core Capabilities
1. Browser Automation
- Navigate to URLs
- Click buttons and links
- Fill form fields
- Select dropdowns
- Handle dialogs and alerts
2. Verification
- Assert element presence
- Verify text content
- Check element visibility
- Validate URLs
- Test responsive behavior
3. Debugging
- Capture screenshots
- View console logs
- Inspect network requests
- Debug failed tests
Usage Examples
Example 1: Basic Navigation Test
// Navigate to a page and verify title
await page.goto('http://localhost:3000');
const title = await page.title();
console.log('Page title:', title);
Example 2: Form Interaction
// Fill out and submit a form
await page.fill('#username', 'testuser');
await page.fill('#password', 'password123');
await page.click('button[type="submit"]');
await page.waitForURL('**/dashboard');
Example 3: Screenshot Capture
// Capture a screenshot for debugging
await page.screenshot({ path: 'debug.png', fullPage: true });
Guidelines
- Always verify the app is running - Check that the local server is accessible before running tests
- Use explicit waits - Wait for elements or navigation to complete before interacting
- Capture screenshots on failure - Take screenshots to help debug issues
- Clean up resources - Always close the browser when done
- Handle timeouts gracefully - Set reasonable timeouts for slow operations
- Test incrementally - Start with simple interactions before complex flows
- Use selectors wisely - Prefer data-testid or role-based selectors over CSS classes
Common Patterns
Pattern: Wait for Element
await page.waitForSelector('#element-id', { state: 'visible' });
Pattern: Check if Element Exists
const exists = await page.locator('#element-id').count() > 0;
Pattern: Get Console Logs
page.on('console', msg => console.log('Browser log:', msg.text()));
Pattern: Handle Errors
try {
await page.click('#button');
} catch (error) {
await page.screenshot({ path: 'error.png' });
throw error;
}
Limitations
- Requires Node.js environment
- Cannot test native mobile apps (use React Native Testing Library instead)
- May have issues with complex authentication flows
- Some modern frameworks may require specific configuration
Source
git clone https://github.com/aiskillstore/marketplace/blob/main/skills/7spade/webapp-testing/SKILL.mdView on GitHub Overview
This skill enables end-to-end testing and debugging of local web applications using Playwright automation. It supports navigating pages, interacting with UI elements, capturing screenshots, and inspecting browser logs to validate front-end behavior and user flows. Use it to ensure reliability across viewports and complex user interactions.
How This Skill Works
Leverage Playwright to automate a real browser: navigate to URLs, fill fields, click controls, and verify outcomes. It provides built-in capabilities for verification, debugging (screenshots, console logs, network inspection), and failure reporting. Code examples illustrate common patterns like explicit waits and error handling.
When to Use It
- Test frontend functionality in a real browser with end-to-end flows.
- Verify UI behavior and interactions, including dialogs and navigation.
- Debug web application issues by inspecting console logs and network requests.
- Capture screenshots for documentation, bug reports, or failure analysis.
- Validate responsive design and form submissions across viewports.
Quick Start
- Step 1: Ensure Node.js is installed and your local web app is running (or provide a URL).
- Step 2: Install Playwright (it will auto-install if missing) and create a test script using browser automation, verification, and debugging patterns.
- Step 3: Run the tests and review results, including screenshots and browser logs.
Best Practices
- Verify the app is running before tests.
- Use explicit waits for elements and navigations.
- Capture screenshots on failure to aid debugging.
- Clean up resources by closing the browser after tests.
- Prefer data-testid or role-based selectors over brittle CSS classes.
Example Use Cases
- Example 1: Basic Navigation Test — Navigate to a page and verify the title.
- Example 2: Form Interaction — Fill inputs, submit, and wait for a dashboard URL.
- Example 3: Screenshot Capture — Save a full-page screenshot for debugging.
- Example 4: Responsive Check — Run tests across multiple viewport sizes.
- Example 5: Console/Network Inspection — Capture browser logs and inspect requests.