
Testing E2e
- 49 installs
- 6 repo stars
- Updated March 13, 2026
- alphaonedev/openclaw-graph
testing-e2e is a skill for end-to-end web testing using Playwright, Cypress, and Selenium with browser automation, visual regression, and CI integration.
About
This skill covers end-to-end testing of web applications using Playwright, Cypress, and Selenium for browser automation, visual regression, and CI integration. A developer uses it to verify user flows and UI interactions, run cross-browser checks, and debug UI issues before deployment. It includes Page Object Model structure, tracing, and screenshot comparison patterns.
- End-to-end testing with Playwright, Cypress, and Selenium
- Page Object Model, visual regression, and trace viewer
- CI integration with GitHub Actions and Jenkins
Testing E2e by the numbers
- 49 all-time installs (skills.sh)
- Ranked #1,232 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
testing-e2e capabilities & compatibility
- Capabilities
- testing integration · testing performance
- Works with
- playwright · selenium · github · jenkins
- Use cases
- testing · debugging · ci cd
What testing-e2e says it does
This skill enables end-to-end (E2E) testing using tools like Playwright, Cypress, and Selenium for browser automation, visual regression testing, and integration with CI/CD pipelines.
Page Object Model (POM): Structure tests with reusable page classes, e.g., define locators in a separate file.
npx skills add https://github.com/alphaonedev/openclaw-graph --skill testing-e2eAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 49 |
|---|---|
| repo stars | ★ 6 |
| Last updated | March 13, 2026 |
| Repository | alphaonedev/openclaw-graph ↗ |
What it does
Automate end-to-end browser tests of web app user flows with Playwright, Cypress, or Selenium and wire them into CI.
Who is it for?
Verifying user flows, UI interactions, and visual changes before deployments.
When should I use this skill?
For full-stack testing of web apps, regression testing before deployments, or cross-browser compatibility checks.
What you get
- Playwright/Cypress/Selenium test suites
- Page Object Model structure
- CI test reports and artifacts
By the numbers
- Covers three E2E tools: Playwright, Cypress, and Selenium
Files
testing-e2e
Purpose
This skill enables end-to-end (E2E) testing using tools like Playwright, Cypress, and Selenium for browser automation, visual regression testing, and integration with CI/CD pipelines. It focuses on reliable test automation for web applications.
When to Use
Use this skill for full-stack testing of web apps, such as verifying user flows, UI interactions, or visual changes. Apply it in scenarios like regression testing before deployments, cross-browser compatibility checks, or when debugging UI issues in production-like environments.
Key Capabilities
- Automate browser interactions with Playwright: Supports headless mode, tracing, and visual comparisons via
expect.toHaveScreenshot(). - Run Cypress tests: Includes real-time reloading, automatic waiting, and custom commands for assertions.
- Implement Selenium for legacy setups: Use WebDriver to control browsers and handle dynamic content.
- Page Object Model (POM): Structure tests with reusable page classes, e.g., define locators in a separate file.
- Visual regression: Capture and compare screenshots using Playwright's trace viewer or Cypress plugins.
- CI integration: Generate reports and artifacts for tools like GitHub Actions or Jenkins.
Usage Patterns
To set up E2E tests, initialize a project with the chosen tool and write tests in a dedicated directory. Always use environment variables for sensitive data, like $PLAYWRIGHT_BROWSER for browser selection.
Example 1: Playwright test for login flow
- Create a test file:
tests/login.spec.js - Code snippet:
const { test } = require('@playwright/test');
test('login success', async ({ page }) => {
await page.goto('https://app.example.com');
await page.fill('#username', 'user');
await page.click('#login');
});- Run with:
npx playwright test --headed --project=chromium
Example 2: Cypress test for form submission
- Add to
cypress/integration/form.spec.js - Code snippet:
describe('Form Submission', () => {
it('submits correctly', () => {
cy.visit('/form');
cy.get('#name').type('Test User');
cy.get('button[type=submit]').click();
cy.url().should('include', '/success');
});
});- Execute via:
npx cypress run --browser chrome --spec cypress/integration/form.spec.js
For Selenium, use WebDriver with POM: Define a page class and call methods in tests.
Common Commands/API
- Playwright CLI:
npx playwright installto setup browsers;npx playwright test --trace onfor tracing; API:page.locator('selector').click()for interactions. - Cypress CLI:
npx cypress openfor interactive mode;npx cypress run --config video=trueto enable videos; API:cy.get('selector').should('be.visible')for assertions. - Selenium setup: Use
webdriverioor similar; Command:node selenium-test.jswith script likedriver.get('https://example.com'); Config: JSON file for WebDriver options, e.g.,{ "browserName": "chrome" }. - Visual regression: Playwright's
npx playwright show-trace trace.zipto view traces; Cypress via plugins likecypress-image-snapshot.
Integration Notes
Integrate this skill into your workflow by adding it to package.json scripts, e.g., "test:e2e": "npx playwright test". For CI, use GitHub Actions with a step: run: npx cypress run --reporter junit. If API keys are needed (e.g., for cloud services), set env vars like $SELENIUM_GRID_URL or $CYPRESS_API_KEY. Ensure browsers are installed via tools like playwright install --with-deps. For multi-tool setups, use a config file like playwright.config.ts with exports for projects.
Error Handling
When tests fail, check logs first: Use Playwright's --trace flag to generate traces and debug with the trace viewer. For Cypress, enable --config video=true to capture videos. Handle common errors by adding retries, e.g., in Playwright: test('retry', { retries: 2 }, async () => { ... }). For Selenium, wrap code in try-catch blocks:
try {
await driver.findElement(By.id('element')).click();
} catch (error) {
console.error('Element not found:', error);
}Assert conditions explicitly to avoid flaky tests, and use env vars for dynamic configs to prevent setup errors.
Graph Relationships
- Cluster: Connected to "testing" cluster for related skills like unit testing or integration testing.
- Tags: Links to skills with tags "e2e", "playwright", "cypress", and "testing".
- Dependencies: Relates to CI/CD skills for pipeline integration and browser automation tools for execution environments.
Related skills
FAQ
Which tools does this skill use?
It uses Playwright, Cypress, and Selenium for browser automation and E2E testing.
Does it support visual regression?
Yes, via Playwright's expect.toHaveScreenshot() and trace viewer, or Cypress image-snapshot plugins.