awesome-playwright
A curated list of awesome tools, utils and projects using Playwright
Top Related Projects
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
Fast, easy and reliable testing for anything that runs in a browser.
A browser automation framework and ecosystem.
JavaScript API for Chrome and Firefox
Next-gen browser and mobile automation test framework for Node.js
Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol
Quick Overview
Awesome Playwright is a curated list of resources, tools, and libraries for Playwright, a powerful automation framework for web testing and scraping. This repository serves as a comprehensive collection of community-contributed content, making it easier for developers to find valuable resources related to Playwright.
Pros
- Extensive collection of resources covering various aspects of Playwright
- Regularly updated with new contributions from the community
- Well-organized categories for easy navigation
- Includes both official and third-party tools and libraries
Cons
- May contain outdated links or resources if not maintained frequently
- Could be overwhelming for beginners due to the large number of resources
- Lacks detailed descriptions or ratings for each resource
- Some categories may have limited entries compared to others
Code Examples
As this is not a code library but a curated list of resources, there are no specific code examples to provide.
Getting Started
As this is not a code library, there are no specific getting started instructions. However, users can explore the repository by visiting the GitHub page and browsing through the different categories of resources available.
Competitor Comparisons
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
Pros of Playwright
- Official repository with comprehensive documentation and direct support from Microsoft
- Contains the actual Playwright codebase, allowing users to contribute and report issues directly
- Regularly updated with new features, bug fixes, and improvements
Cons of Playwright
- Focuses solely on the core Playwright library and its immediate ecosystem
- May be overwhelming for users looking for curated resources or community-driven content
Code Comparison
Playwright (test example):
const { test, expect } = require('@playwright/test');
test('basic test', async ({ page }) => {
await page.goto('https://playwright.dev/');
await expect(page).toHaveTitle(/Playwright/);
});
Awesome Playwright (no code, as it's a curated list of resources):
## Resources
- [Official Documentation](https://playwright.dev/docs/intro)
- [API Reference](https://playwright.dev/docs/api/class-playwright)
Summary
Playwright is the official repository for the Playwright testing framework, offering comprehensive documentation and direct support from Microsoft. It contains the actual codebase and is regularly updated with new features and improvements. However, it may be overwhelming for users seeking curated resources.
Awesome Playwright, on the other hand, is a community-driven curated list of Playwright resources, tools, and examples. It provides a more accessible entry point for users looking for additional resources and community contributions but doesn't contain the actual Playwright codebase or offer direct support from Microsoft.
Fast, easy and reliable testing for anything that runs in a browser.
Pros of Cypress
- Built-in test runner with a user-friendly GUI for easy test execution and debugging
- Automatic waiting and retrying mechanisms, reducing the need for explicit waits
- Extensive documentation and active community support
Cons of Cypress
- Limited cross-browser testing capabilities (primarily focused on Chrome-based browsers)
- Slower test execution compared to Playwright due to its architecture
- Less flexibility in handling multiple tabs or windows
Code Comparison
Cypress:
cy.visit('https://example.com')
cy.get('input[name="username"]').type('user123')
cy.get('input[name="password"]').type('password123')
cy.get('button[type="submit"]').click()
cy.url().should('include', '/dashboard')
Awesome Playwright:
await page.goto('https://example.com')
await page.fill('input[name="username"]', 'user123')
await page.fill('input[name="password"]', 'password123')
await page.click('button[type="submit"]')
await expect(page).toHaveURL(/\/dashboard/)
Summary
While Cypress offers a user-friendly interface and built-in waiting mechanisms, Awesome Playwright provides a curated list of resources for Playwright, which offers better cross-browser support and faster execution. Cypress excels in ease of use, while Playwright (and its resources in Awesome Playwright) offers more flexibility and broader browser compatibility.
A browser automation framework and ecosystem.
Pros of Selenium
- Mature ecosystem with extensive documentation and community support
- Wide language support (Java, Python, C#, Ruby, JavaScript, etc.)
- Compatible with a broader range of browsers and operating systems
Cons of Selenium
- Slower test execution compared to Playwright
- More complex setup and configuration process
- Less built-in support for modern web features like shadow DOM
Code Comparison
Selenium (Python):
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com")
element = driver.find_element(By.ID, "my-element")
element.click()
Playwright (Python):
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
page.click("#my-element")
While Selenium is a well-established tool with broad compatibility, Playwright offers faster execution and better support for modern web technologies. Selenium's code tends to be more verbose, requiring explicit waits and element location strategies. Playwright, on the other hand, provides a more concise API with built-in auto-waiting and simpler selectors. The choice between the two depends on specific project requirements, such as browser compatibility needs and the complexity of the web applications being tested.
JavaScript API for Chrome and Firefox
Pros of Puppeteer
- More mature and established project with a larger community
- Extensive documentation and wider range of examples available
- Better support for older browsers and legacy web technologies
Cons of Puppeteer
- Slower development cycle and less frequent updates
- Limited to Chromium-based browsers (Chrome and Edge)
- Heavier resource usage compared to Playwright
Code Comparison
Puppeteer:
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'screenshot.png'});
await browser.close();
Awesome Playwright:
const browser = await playwright.chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'screenshot.png'});
await browser.close();
While the code structure is similar, Playwright offers more flexibility in browser choice and has a more modern API design. Awesome Playwright is a curated list of Playwright resources, tools, and examples, which can be beneficial for developers looking to explore the ecosystem. However, it's important to note that Awesome Playwright is not a direct alternative to Puppeteer, but rather a collection of resources for the Playwright framework.
Next-gen browser and mobile automation test framework for Node.js
Pros of WebdriverIO
- More mature and established project with a larger community
- Supports a wider range of browsers and devices
- Offers built-in reporting and test management features
Cons of WebdriverIO
- Steeper learning curve, especially for beginners
- Configuration can be more complex
- Slower test execution compared to Playwright
Code Comparison
WebdriverIO:
describe('My Login application', () => {
it('should login with valid credentials', async () => {
await browser.url(`https://the-internet.herokuapp.com/login`);
await $('#username').setValue('tomsmith');
await $('#password').setValue('SuperSecretPassword!');
await $('button[type="submit"]').click();
await expect($('#flash')).toBeExisting();
});
});
Awesome Playwright:
test('should login with valid credentials', async ({ page }) => {
await page.goto('https://the-internet.herokuapp.com/login');
await page.fill('#username', 'tomsmith');
await page.fill('#password', 'SuperSecretPassword!');
await page.click('button[type="submit"]');
await expect(page.locator('#flash')).toBeVisible();
});
While WebdriverIO offers more extensive browser support and built-in features, Awesome Playwright provides a simpler API and faster execution. The code comparison shows that Playwright's syntax is more concise and easier to read, especially for those familiar with modern JavaScript. However, WebdriverIO's mature ecosystem and broader device support make it a strong choice for complex testing scenarios.
Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol
Pros of Appium
- Supports multiple platforms (iOS, Android, Windows) for mobile and desktop automation
- Allows using various programming languages (Java, Python, JavaScript, etc.)
- Large and active community with extensive documentation and support
Cons of Appium
- Slower test execution compared to native automation tools
- Setup and configuration can be complex, especially for beginners
- Requires separate drivers for different platforms, increasing maintenance overhead
Code Comparison
Appium (JavaScript):
const driver = await wdio.remote(opts);
await driver.setImplicitTimeout(10000);
await driver.$('~myButton').click();
await driver.deleteSession();
Playwright (JavaScript):
const browser = await playwright.chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.click('#myButton');
await browser.close();
While Appium focuses on mobile automation with a multi-language approach, awesome-playwright is a curated list of resources for Playwright, which is primarily used for web automation. Playwright offers a simpler setup process and faster execution for web testing, but lacks native mobile support. Appium's strength lies in its cross-platform capabilities, making it suitable for projects requiring both web and mobile testing.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Awesome Playwright 
A curated list of awesome tools, utils and projects using Playwright
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API. Available for Node.js, Python, .NET and Java.
Contents
Integrations
- @appetize/Playwright - Mobile tests for web or native apps on Appetize's virtual devices using Playwright Test Runner.
- appwright - Mobile tests using Appium with Playwright Test Runner.
- artillery-engine-playwright - Load testing with Playwright.
- @axe-core/Playwright - Official Axe integration with Playwright.
- axe-playwright - Unofficial integration of Axe with Playwright.
- Chromium for Serverless platforms - Prebuilt Chromium binaries for Playwright on serverless platforms.
- CodeceptJS - Supercharged End 2 End Testing Framework for Node.js.
- cucumber-playwright - A starter repo for writing E2E tests based on Cucumber with Playwright using TypeScript.
- @guidepup/Playwright - VoiceOver and NVDA screen reader driver integration for Playwright.
- Happo - Catch unexpected visual and accessibility changes and UI bugs.
- Playwright Angular Schematic - Adds Playwright Test to your Angular project.
- playwright-bdd - BDD testing with Playwright runner and CucumberJS.
- Playwright CRX - Playwright codegen as a chrome extension. Available in Chrome Web Store.
- playwright-graphql - Generates a typeâsafe GraphQL client and fixtures for Playwright API tests, with a CLI for schema/operation generation and optional coverage reporting.
- playwright-pytest - Official Pytest plugin for using Playwright pages with fixtures.
- Serenity/JS - Acceptance testing, reporting, and test integration framework for Playwright, implementing the Screenplay Pattern.
Language Support
- Playwright - Official Playwright in Node.js (JavaScript and TypeScript).
- playwright-dotnet - Official Playwright port to .NET.
- playwright-java - Official Playwright port to Java.
- playwright-python - Official Playwright port to Python.
- playwright-go - Playwright port for Golang.
- playwright-perl - Playwright port for Perl.
- playwright-ruby-client - Playwright port for Ruby.
- playwright-rust - Playwright port for Rust.
Utils
- @bgotink/playwright-coverage - Report coverage on Playwright tests using v8 coverage, without requiring any instrumentation.
- BrowserClaw - AI browser automation via accessibility snapshots and ref targeting, built on Playwright.
- eslint-plugin-playwright - ESLint plugin for your Playwright testing needs.
- @global-cache/Playwright - A key-value cache for sharing data between parallel workers and test runs.
- Heroshot - Documentation screenshot automation. Visual picker to define screenshots, one command to regenerate them all.
- Libretto - Open-source Playwright-based toolkit and CLI for coding agents to inspect pages, capture network traffic, and generate automation scripts.
- Moon - Tools for executing Playwright tests in parallel in a Kubernetes cluster.
- octomind.dev - Auto-generated, run & maintained with AI-assisted test case discovery.
- playwright-best-practices-skill - AI Skill to make agents experts at writing, debugging and maintaining Playwright tests.
- Playwright-cleanup - A Playwright cleanup tool that simplifies test cleanup by undoing any changes to the testing environment.
- playwright-elements - Playwright test extension for creation of reusable, chainable component elements to reduce page object boilerplate.
- playwright-magic-steps - Auto-transform JavaScript comments into Playwright steps.
- playwright-network-cache - Speed up Playwright tests by caching network requests on the filesystem.
- Playwright-performance - Plugin for measuring and analyzing performance of tested flows using Playwright.
- playwright-python-language-injection - Language injection definitions for CSS/JS syntax highlighting when using
python-playwrightin PyCharm. - playwright-skill - 70+ production-tested Playwright skills for coding agents covering best practices, POM patterns, CI/CD, and migration paths.
- playwright-test-coverage - Plugin to collect code coverage from running Playwright tests.
- Playwright Test for VSCode - Official Playwright test extension for VS Code.
- playwright-ui5 - Custom selector engine for sapui5.
- playwright-xpath - Custom selector engine for xpath 2 and 3.
- POMWright - TypeScript-based Page Object Model framework with automatic nested/chained locator generation.
- TestingBot - Connect your Playwright tests with browsers in the Cloud.
- Try Playwright - Interactive playground for running Playwright tests.
Reporters
- allure-playwright - Allure integration with Playwright Test framework.
- Checkly - Uploads Playwright test results, screenshots, videos and traces to the Checkly platform for monitoring and debugging across global regions.
- currents-dev - A Cloud Dashboard to debug, troubleshoot and analyze parallel Playwright CI tests.
- echoed - Makes tests observable by visualizing OpenTelemetry data in HTML.
- monocart-reporter - A Playwright test reporter, shows suites/cases/steps in html grid.
- playwright-ctrf-json-reporter - A Playwright JSON test results reporter that follows the CTRF schema.
- playwright-slack-report - Publish your Playwright test results to your favorite Slack channel(s).
- playwright-smart-reporter - A feature-rich HTML reporter with stability grades, trend analytics, retry analysis, performance tracking, and optional AI-powered failure analysis.
- playwright-tesults-reporter - A library for uploading test results to Tesults from Playwright.
- playwright-xray - Playwright Xray Reporter, send test executions to Jira / Xray.
- qase - Playwright Qase Reporter, send test executions to qase.
- TestDino - An AI Cloud platform for Playwright test analytics with instant failure debugging, flaky test detection, and ML categorization.
- testomatio-reporter - Runs and sends test executions to the TCMS testomatio, Jira / Linear / Azure DevOps task management.
- playwright-timeline-reporter - An interactive timeline reporter to optimize your test run performance and worker utilization.
Showcases
- Elastic APM JS agent - Playwright is used to run benchmark tests across browsers.
- playwright-examples - Various testing scenarios with Playwright.
- TypeScript - Playwright is used to test TypeScript.js across browsers.
- VS Code - Playwright is used to run cross-browser tests on their web builds.
- xterm.js - Playwright is used to run cross-browser integration tests.
Guides
- Currents Blog - Playwright articles written by QA professionals.
- Playwright Tips (videos) - Video walkthroughs of common challenges testing and monitoring with Playwright.
- Playwright Weekly - Curated aggregator of Playwright articles & news from the internet.
- playwrightsolutions.com - Curated Selection of Playwright Automated Test Problems and Solutions.
- serenity-js.org - Learn how to write acceptance tests in business language using Playwright and the Serenity/JS Screenplay Pattern.
- Testing 3D applications with Playwright on GPU - Recipe to enable hardware acceleration for Playwright tests on CI.
Contribute
Contributions welcome! Read the contribution guidelines first.
Top Related Projects
Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.
Fast, easy and reliable testing for anything that runs in a browser.
A browser automation framework and ecosystem.
JavaScript API for Chrome and Firefox
Next-gen browser and mobile automation test framework for Node.js
Cross-platform automation framework for all kinds of apps, built on top of the W3C WebDriver protocol
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot