Introduction

Website automation 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, but 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.

Our last article tackled Selenium, its history, 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 which 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.

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 take a look at the newer tool which gained popularity in recent years– Cypress. Cypress is described as a JavaScript only set of tools which 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.

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 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, etcMochaJs, 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 & SupportHas 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 since 2014, but the community is still growing due to its ease of use.
Licensing Open source, with resources available on the official website.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, coupled with 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 are more time-consuming. Cypress, on the other hand, can help you save time with its integrated features and real time browser testing, but 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 their disadvantages, ultimately the use of 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 of them, we hope that our article helped you make a more informed decision.