UNPKG

self-healing-playwright

Version:

Self-healing locators for Playwright tests using AI-powered healing strategies

83 lines (66 loc) 2.7 kB
# Self-Healing Playwright A powerful npm package that enhances Playwright tests with AI-powered self-healing capabilities. This package automatically fixes failing locators in your Playwright tests using various healing strategies. ## Features - AI-powered locator healing using Groq API - Multiple healing strategies (text, role, xpath, css) - Configurable confidence thresholds - Caching mechanism for improved performance - Detailed reporting and debugging capabilities ## Installation ```bash npm install self-healing-playwright ``` ## Usage ### Basic Setup ```typescript import { createHealingEngine } from 'self-healing-playwright'; import { test } from '@playwright/test'; // Initialize the healing engine const healingEngine = createHealingEngine({ groqApiKey: 'your-groq-api-key', // Required healingStrategies: ['text', 'role', 'xpath', 'css'], confidenceThreshold: 0.8, maxRetries: 3, debug: true, reportPath: './healing-reports' }); // Use in your tests test('example test', async ({ page }) => { try { await page.click('button:has-text("Submit")'); } catch (error) { // The healing engine will automatically attempt to fix the locator const result = await healingEngine.heal({ originalLocator: 'button:has-text("Submit")', testFile: 'example.test.ts', lineNumber: 10, domSnapshot: await page.content(), page: page, error: error }); if (result.success) { await page.click(result.newLocator); } } }); ``` ### Configuration Options | Option | Type | Default | Description | |--------|------|---------|-------------| | `groqApiKey` | string | - | Required. Your Groq API key | | `healingStrategies` | string[] | ['text', 'role', 'xpath', 'css'] | Array of healing strategies to use | | `confidenceThreshold` | number | 0.8 | Minimum confidence score required for a healing attempt | | `maxRetries` | number | 3 | Maximum number of healing attempts | | `retryInterval` | number | 1000 | Time in ms between retry attempts | | `cacheEnabled` | boolean | true | Enable/disable caching of healing results | | `cacheTTL` | number | 3600 | Cache time-to-live in seconds | | `maxCacheSize` | number | 1000 | Maximum number of cache entries | | `debug` | boolean | false | Enable debug logging | | `reportPath` | string | './healing-reports' | Path to store healing reports | | `cacheResults` | boolean | true | Whether to cache healing results | | `excludePatterns` | string[] | [] | Patterns to exclude from healing | | `includePatterns` | string[] | [] | Patterns to include for healing | ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License MIT