Playwright is an open-source Node.js library launched by Microsoft to automate Chromium, Firefox, and WebKit-based browsers through a single API. Playwright’s main goal is to improve automated UI testing.
Playwright has a similar mission to Puppeteer, although Puppeteer only supports Chromium-based browsers. As the Playwright team explains:
We are the same team that originally created Puppeteer at Google, but has since evolved. Puppeteer has proven that there is a lot of interest in the next generation of evergreen, capable and reliable automation drivers. With Playwright, we would like to go further and offer the same functionality for all popular renderers. We would like Playwright to be vendor-neutral and shared-governed.
The Playwright team is working to create more test-friendly APIs by learning lessons and challenges with Puppeteer.
Playwright also aims to be cloud-native with its
BrowserContext abstraction, allowing
BrowserContexts to be created locally or provided as a service.
The Playwright team believes that due to the similarity in core concepts and APIs, migrating between Puppeteer and Playwright should be straightforward.
Playwright is also an alternative to WebDriver, the current W3C standard for web automation and testing. The Playwright team notes that Puppeteer influenced the WebDriver standard by orienting WebDriver to a two-way communication channel. The Playwright team hopes to shape future WebDriver standards to support many Progressive Web App (PWA) features, such as support for additional browser features, more user-friendly APIs, and increased testing reliability.
Playwright supports upstream versions of Chromium and plans to sync their
npm release cycle with Chromium stable channel releases.
To support WebKit, Playwright is making changes to WebCore and WebKit2 to extend WebKit’s remote debugging capabilities and Playwright APIs. The team hopes to make these changes in WebKit to rely on the upstream version of WebKit instead.
For Firefox, Playwright is also making changes to Firefox for features like content script debugging, workers, CSP, emulation, network interception, and more. Similar to WebKit, the Playwright team hopes these changes will come to Firefox soon.
Playwright supports every browser engine on Windows, macOS, and Linux. Headless mode is available for all supported browsers and platforms.
Playwright is currently in a 0.9.x release, with a stable 1.0 release expected in 2020. Is Playwright Ready shares the current status of Playwright on supported browser engines.
Playwright is open source software available under the Apache 2 License. Contributions are welcome through Playwright’s Contribution Guidelines, in accordance with Microsoft’s Code of Conduct.