developer operations tool_instruction risk: low
Playwright Web App Testing Toolkit
This prompt describes a skill for testing and debugging local web applications using Playwright, covering browser automation, verification, debugging, usage examples, guidelines, c…
PROMPT
---
name: web-application-testing-skill
description: A toolkit for interacting with and testing local web applications using Playwright.
---
# Web 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
```javascript
// 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
```javascript
// 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
```javascript
// Capture a screenshot for debugging
await page.screenshot({ path: 'debug.png', fullPage: true });
```
## Guidelines
1. **Always verify the app is running** - Check that the local server is accessible before running tests
2. **Use explicit waits** - Wait for elements or navigation to complete before interacting
3. **Capture screenshots on failure** - Take screenshots to help debug issues
4. **Clean up resources** - Always close the browser when done
5. **Handle timeouts gracefully** - Set reasonable timeouts for slow operations
6. **Test incrementally** - Start with simple interactions before complex flows
7. **Use selectors wisely** - Prefer data-testid or role-based selectors over CSS classes
## Common Patterns
### Pattern: Wait for Element
```javascript
await page.waitForSelector('#element-id', { state: 'visible' });
```
### Pattern: Check if Element Exists
```javascript
const exists = await page.locator('#element-id').count() > 0;
```
### Pattern: Get Console Logs
```javascript
page.on('console', msg => console.log('Browser log:', msg.text()));
```
### Pattern: Handle Errors
```javascript
try {
await page.click('#button');
} catch (error) {\n 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 REQUIRED CONTEXT
- locally running web application URL
OPTIONAL CONTEXT
- specific UI interactions
- responsive viewports
- test scenarios
TOOLS REQUIRED
- playwright
ROLES & RULES
- Always verify the app is running.
- Use explicit waits.
- Capture screenshots on failure.
- Clean up resources.
- Handle timeouts gracefully.
- Test incrementally.
- Use selectors wisely.
EXPECTED OUTPUT
- Format
- code
- Constraints
-
- JavaScript Playwright syntax
- include waits and error handling
- capture screenshots on failure
FAILURE MODES
- Requires Node.js environment
- Cannot test native mobile apps
- May have issues with complex authentication flows
- Some modern frameworks may require specific configuration
EXAMPLES
Includes three usage examples for basic navigation test, form interaction, and screenshot capture, plus common patterns with code snippets.
CAVEATS
- Dependencies
-
- Node.js installed on the system
- A locally running web application (or accessible URL)
- Missing context
-
- Code snippet for launching Playwright browser and creating page context
- Specific Playwright version or installation command
- Integration instructions for the AI/agent framework using this skill
QUALITY
- OVERALL
- 0.93
- CLARITY
- 0.95
- SPECIFICITY
- 0.90
- REUSABILITY
- 0.95
- COMPLETENESS
- 0.92
IMPROVEMENT SUGGESTIONS
- Add a 'Quick Start' section with full browser launch code: e.g., const browser = await playwright.chromium.launch(); const page = await browser.newPage();
- Include more diverse examples for responsive testing and network interception.
- Specify error handling for prerequisites like checking if Node.js is installed.
USAGE
Copy the prompt above and paste it into your AI of choice — Claude, ChatGPT, Gemini, or anywhere else you're working. Replace any placeholder sections with your own context, then ask for the output.
MORE FOR DEVELOPER
- DevOps CI/CD Pipeline Automatordeveloperoperations
- Cascading System Failure Simulatordeveloperoperations
- DevOps Dependency Manager and Auditordeveloperoperations
- NixOS Specialist for Linux Expertsdeveloperoperations
- Web Launch Readiness Checklist Generatordeveloperoperations
- API Performance Load Chaos Testing Expertdeveloperoperations
- DevOps Environment Configuration Specialistdeveloperoperations
- AWS Cloud Architecture Expertdeveloperoperations
- DevOps CI/CD Automation Pipeline Architectdeveloperoperations
- E-commerce MVP Quick DevOps Practices Advisordeveloperoperations