browser-testing
Browser automation for testing IntelliFill. Replaces puppeteer MCP to save ~4.8k tokens.
When & Why to Use This Skill
This Claude skill provides high-efficiency browser automation specifically optimized for UI testing and quality assurance. By replacing standard Puppeteer MCP servers, it saves approximately 4.8k tokens through on-demand lazy-loading. It enables developers to automate form filling, capture screenshots for documentation, debug visual UI issues in real-time, and manage complex file upload/download workflows within a Chrome environment.
Use Cases
- Automated Form Testing: Streamline the validation of complex web forms by automating data entry and submission sequences to ensure data integrity.
- Visual UI Debugging: Connect to a running Chrome instance to visually inspect elements, capture screenshots, and resolve layout regressions or front-end bugs.
- Document Workflow Automation: Automate end-to-end file upload and processing flows, specifically designed for testing document-heavy applications like IntelliFill.
- Token-Efficient Web Interaction: Perform browser-based tasks without the heavy context overhead of traditional MCP servers, optimizing LLM performance and response speed.
| name | browser-testing |
|---|---|
| description | Browser automation for testing IntelliFill. Replaces puppeteer MCP to save ~4.8k tokens. |
Browser Testing
This skill covers browser automation for IntelliFill testing. It lazy-loads on demand instead of consuming context upfront like MCP servers.
When I Need This
- Testing form filling in Chrome
- Capturing screenshots for docs
- Debugging UI issues visually
- Automating upload/download flows
Quick Setup
Start Chrome with remote debugging first:
start chrome --remote-debugging-port=9222 --user-data-dir="N:/IntelliFill/quikadmin/chrome-debug-profile"
Core Patterns
Connect to Running Chrome
const browser = await puppeteer.connect({ browserURL: 'http://localhost:9222' });
const page = await browser.newPage();
Navigate and Interact
await page.goto('http://localhost:8080/login');
await page.type('[name="email"]', 'test@example.com');
await page.type('[name="password"]', 'password123');
await page.click('[type="submit"]');
await page.waitForNavigation();
Screenshot
await page.screenshot({ path: 'output.png', fullPage: true });
File Upload (IntelliFill document flow)
const [chooser] = await Promise.all([
page.waitForFileChooser(),
page.click('#upload-button')
]);
await chooser.accept(['./test-files/sample.pdf']);
await page.waitForSelector('.upload-complete');
IntelliFill URLs
| Page | URL |
|---|---|
| Login | http://localhost:8080/login |
| Dashboard | http://localhost:8080/dashboard |
| Documents | http://localhost:8080/documents |
| Upload | http://localhost:8080/documents/upload |
Prefer Cypress/Playwright
For proper E2E tests, use the e2e-testing skill instead - it has full test infrastructure. This skill is for quick manual browser automation when you need direct Puppeteer control.