Our last article tackled Selenium, its history, the set of tools and usability within the web-testing framework, and how to get started on your journey with Selenium. This time, we decided to dive deeper into web testing tools by making a comparison between Selenium and Cypress, a discussion that began with our poll posted this Monday, which you can check here.

The comparison between these two web-testing tools is aimed at juniors looking for more information about which tools are best for them to kick-start their career in automated software testing.

So what are web testing tools?

Website automation software testing has become more and more useful in recent years as testers are looking for faster and more efficient ways for users to interact with web applications.

To someone with no web development knowledge, browsers may appear to be a simple tool we use every day, whether on computers or phones. Still, testers must dive deep and identify the best automation testing tools to ensure that browsers maintain user-friendliness. To do so, testers must check that all the required behaviors and functionalities can be accessed and used within the process of browser automation.

Selenium vs. Cypress

We decided to approach this topic of Selenium versus Cypress due to its popularity, but this comparison often proves to be misleading. Selenium is “an open-source umbrella project for a range of tools and libraries aimed at supporting web browser automation,” while Cypress is JavaScript-specific, therefore having more limitations in terms of language usage but with more built-in features and ease of use.

The new competitor: Cypress

First of all, let’s look at the newer tool that gained popularity in recent years– Cypress. Cypress is described as a JavaScript-only set of tools that aim to assist QA engineers with web testing whilst also providing aid to developers. Moreover, it requires little effort to set up as it comes with all the necessary features to get started; prior to Cypress, extra steps were required for end-to-end tests, such as choosing more frameworks (e.g., Mocha, QUnit), the assertion library(e.g., Node.js), the installation of Selenium with a wrapper (e.g., Webdriver) and extra libraries for stub and mock testing.

Cypress: where to get started

To install Cypress, all you have to do is download it from the official website, where you can check its features and usability. The official site offers juniors practical, step-by-step resources necessary to start learning Cypress, making their life easier in the process.

Looking at the simplification of testing using Cypress, what comes to my attention is that, unlike most of the testing frameworks, Cypress does not require Selenium to run tests since it can interact with the browser while the application is still running. The lack of Selenium and other additional steps seems to open the door to Cypress as a new set of tools that could challenge Selenium’s position as the most used web testing framework.


To have a better understanding of each of their properties, let’s start by comparing them:

SeleniumCypress
Browser supportedChrome, Firefox, Edge, Internet Explorer, SafariChrome, Firefox, Edge, Electron, Brave
Languages supportedJava, JavaScript, Python, CSharp, Ruby, KotlinJavaScript
Test FrameworksThe test framework matches the language bindings: NUnit for .NET, JUnit for Java, RSpec for Ruby, etc.MochaJs, Chai, Sinon.JS, etc
Drivers neededEach browser requires its own driverNo need for driver bindings
Testing purposes & Time Management End-to-end testing, with more steps, requiresFaster end-to-end testing, benefitting from more built-in features
Maturity & SupportIt has been around for 18 years, with updates and modifications made to keep up with the browser changes over time. Still on the newer side, with its open beta released in 2014, the community is still growing due to its ease of use.
Licensing Open source, with resources available on the official website.The main features are offered for free, with resources available on the official website. Paid subscriptions are required for advanced settings.
Mobile testing supportYes, with the help of AppiumNo
Junior friendlyJuniors familiar with a supported language of their choice and the existing support can make it easier for new testers.While Cypress offers a simpler setup, it may require some prior developer knowledge to explore its full potential. 

Selenium or Cypress: Which tool is best to start with?

In the comparison above, we have established some of the main characteristics of Selenium and Cypress, and now we can focus on which of these sets of tools are best for a beginner to start learning. On one side, we have Selenium, an open source supporting multiple programming languages, with older support and community to boost, but its multitude of features is more time-consuming.

On the other hand, Cypress can help you save time with its integrated features and real-time browser testing. Still, it’s limited to knowledge of JavaScript, offers no support for mobile testing, and may need additional subscriptions and developer knowledge.

We asked our colleagues to share their insights on this matter:

“For beginners, I would recommend learning Cypress, even if they don’t have a lot of knowledge in the developer field. Cypress eases the process of writing scripts thanks to its easy-to-understand, native library.”

The choice ultimately lies with the requirements and automation needs of each application.

“Cypress might be enough for mostly Ui and API testing, but complex applications demand the integration of other tools, such as those offered by Selenium. In such a case, we must look for additional options as well.”

While both sets of tools have their advantages and disadvantages, ultimately, using either Selenium or Cypress depends on the particularities and demands of each specific testing project.

Regardless of which set of tools you decide to learn, or maybe if you want to choose both, we hope our article helped you make a more informed decision.