Wondering how to choose between Playwright vs Selenium for your test automation? Read on to see a comparison between the two popular test automation tools.
When it comes to web test automation, Selenium has been the dominant industry tool for several years. However, there are many other automated testing tools on the market. Playwright is a newer tool that has been gaining popularity. How do their features compare, and which one should you choose?
What is Selenium?
Selenium is a long-running open source tool for browser automation. It was originally conceived in 2004 by Jason Huggins, and has been actively developed ever since. Selenium is a widely-used tool with a huge community of users, and the Selenium WebDriver interface even became an official W3C Recommendation in 2018.
The framework is capable of automating and controlling web browsers and interacting with UI elements, and it’s the most popular framework in the industry today. There are several tools in the Selenium suite, including:
- Selenium WebDriver: WebDriver provides a flexible collection of open source APIs that can be used to easily test web applications
- Selenium IDE: This record-and-playback tool enables rapid test development for both engineers and non-technical users
- Selenium Grid: The Grid lets you distribute and run tests in parallel on multiple machines
The impact of Selenium goes even beyond the core framework, as a number of other popular tools, such as Appium and WebDriverIO, have been built directly on top of Selenium’s API.
Selenium is under active development and recently unveiled a major version update to Selenium 4. It supports just about all major browsers and popular programming languages. Thanks to a wide footprint of use and extensive community support, the Selenium open source project continues to be a formidable presence in the browser automation space.
What is Playwright?
Playwright is a relatively new open source tool for browser automation, with its first version released by Microsoft in 2020. It was built by the team behind Puppeteer, which is a headless testing framework for Chrome/Chromium. Playwright goes beyond Puppeteer and provides support for multiple browsers, among other changes.
Playwright is designed for end-to-end automated testing of web apps. It’s cross-platform, cross-browser and cross-language, and includes helpful features like auto-waiting. It is specifically engineered for the modern web and generally runs very quickly, even for complex testing projects.
While far newer than Selenium, Playwright is picking up steam quickly and has a growing following. Due in part to its young age, it supports fewer browsers/languages than Selenium, but by the same token it also includes newer features and capabilities that are more aligned with the modern web. It is actively developed by Microsoft.
Selenium vs Playwright
Selenium and Playwright are both capable web automation tools, and each has its own strengths and weaknesses. Depending on your needs, either one could serve you best. Do you need a wider array of browser/language support? How much does a long track record of support and active development matter to you? Is test execution speed paramount?
Each tool is open source, cross-language and developer friendly. Both support CI/CD (via Jenkins, Azure Pipelines, etc.), and advanced features like screenshot testing and automated visual testing. However, there are some key architectural and historical differences between the two that explain some of their biggest differences.
Selenium Architecture and History
- Architecture: Selenium uses the WebDriver API to interact between web browsers and browser drivers. It operates by translating test cases into JSON and sending them to the browsers, which then execute the commands and send an HTTP response back.
- History: Selenium has been in continuous operation and development for 18+ years. As a longstanding open source project, it offers broad support for browsers/languages, a wide range of community resources and an ecosystem of support.
Playwright Architecture and History
- Architecture: Playwright uses a WebSocket connection rather than the WebDriver API and HTTP. This stays open for the duration of the test, so everything is sent on one connection. This is one reason why Playwright’s execution speeds tend to be faster.
- History: Playwright is fairly new to the automation scene. It is faster than Selenium and has capabilities that Selenium lacks, but it does not yet have as broad a range of support for browsers/languages or community support. It is open source and backed by Microsoft.
Comparing Playwright vs Selenium Features
It’s important to consider your own needs and pain points when choosing your next test automation framework. The table below will help you compare Playwright vs Selenium.
Criteria | Playwright | Selenium |
---|---|---|
Browser Support | Chromium, Firefox, and WebKit (note: Playwright tests browser projects, not stock browsers) | Chrome, Safari, Firefox, Opera, Edge, and IE |
Language Support | Java, Python, .NET C#, TypeScript and JavaScript. | Java, Python, C#, Ruby, Perl, PHP, and JavaScript |
Test Runner Frameworks Support | Jest/Jasmine, AVA, Mocha, and Vitest | Jest/Jasmine, Mocha, WebDriver IO, Protractor, TestNG, JUnit, and NUnit |
Operating System Support | Windows, Mac OS and Linux | Windows, Mac OS, Linux and Solaris |
Architecture | Headless browser with event-driven architecture | 4-layer architecture (Selenium Client Library, JSON Wire Protocol, Browser Drivers and Browsers) |
Integration with CI | Yes | Yes |
Prerequisites | NodeJS | Selenium Bindings (for your language), Browser Drivers and Selenium Standalone Server |
Real Device Support | Native mobile emulation (and experimental real Android support) | Real device clouds and remote servers |
Community Support | Smaller but growing set of community resources | Large, established collection of documentation and support options |
Open Source | Free and open source, backed by Microsoft | Free and open source, backed by large community |
Should You Use Selenium or Playwright for Test Automation?
Is Selenium better than Playwright? Or is Playwright better than Selenium? Selenium and Playwright both have a number of things going for them – there’s no easy answer here. When choosing between Selenium vs Playwright, it’s important to understand your own requirements and research your options before deciding on a winner.
Selenium vs Playwright: Let the Code Speak
A helpful way to go beyond lists of features and try to get a feel for the practical advantages of each tool is to go straight to the code and compare real-world examples side by side. At Applitools, our goal is to make test automation easier for you – so that’s what we did!
In the video below, you can see a head to head comparison of Playwright vs Selenium. Angie Jones and Andrew Knight take you through ten rounds of a straight-to-the-code battle, with the live audience deciding the winning framework for each round. Check it out for a unique look at the differences between Playwright and Selenium.
If you like these code battles and want more, we’ve also pitted Playwright vs Cypress and Selenium vs Cypress – check out all our versus battles here.
In fact, our original Playwright vs Cypress battle (recap here) was so popular that we’ve even scheduled our first rematch. Who will win this time? Register for the Playwright vs Cypress Rematch now to join in and vote for the winner yourself!
Learn More about Playwright vs Selenium
Want to learn more about Playwright or Selenium? Keep reading below to dig deeper into the two tools.
- Your Favorite Questions about Playwright, Answered [blog]
- What’s New In Selenium 4? [blog]
- Playwright: A New Test Automation Framework for the Modern Web [webinar w/team at Microsoft]
- Running Lightning-Fast Cross-Browser Playwright Tests Against any Browser [blog]
- Modern Cross Browser Testing with Selenium in Java [webinar]
- Playwright with JavaScript [free course]
- Selenium WebDriver with Java [free course]
- Playing with Playwright [blog]
- Playing with Playwright – Java API and Playwright vs Selenium [blog]
- 16 reasons why to use Selenium IDE in 2021 (and 1 why not) [blog]