Author: tekinalpnaz

Naz is a QA Engineer in a high-paced and quality obsessed environment. Passionate about new technologies and techniques in testing. Regularly attends test events and meetings. 
Currently working as a Software QA Engineer at Emakina.TR / EPAM Systems. LinkedIn: https://tr.linkedin.com/in/naztekinalp
Selenium vs. Cypress: Features, Advantages, and Limitations

Everywhere, automation is the trend right now!

Like the rest of the industry, software automation is following the trend. There are many test automation tools to choose from. Currently, Selenium is the most popular tool in the market for testing web applications because of its solid reputation. However, with Cypress gaining popularity in the past few years, Selenium’s crown is at stake.

Both tools do the same thing from a practical point of view, but they differ in performance, architecture and in overall experience. There are talks over whether Cypress is an alternative for Selenium or Selenium’s eventual replacement altogether. 

Let’s examine the key differences between Selenium and Cypress and compare these two test automation tools based on their different features:

What is Selenium?

Selenium is an open-source test automation framework. In the world of testing automation, Selenium is one of the most well-known automation frameworks. Most organizations use Selenium to perform testing.

Selenium uses the native automation support provided by each browser to make direct calls to the browser. 

Advantages of Selenium: Key Features

  • Open source 
  • Supports cross-browser testing
  • Supports and compatibility for all major browsers (Chrome, Safari, Firefox, Edge, IE… )
  • Flexibility to choose different programming languages — Support for different programming languages such as Java, JavaScript, Python, Ruby…
  • Supports many operations systems — No Operating System limitations
  • Supports Mobile Testing 
  • Load tests can be done
  • CI/CD tool integration (Jenkins, Maven)
  • Third-party tool integration
  • Has a huge online community — lots of online resources

Disadvantages of Selenium: The Limitations

  • The test environment setup is more challenging — especially when you see Selenium vs Cypress
  • Need to write explicit code for waiting time — automatic waiting is not supported 
  • Slow test development — Test case creation is time consuming (when compared to Cypress)
  • May result in false- positive test results

What is Cypress?

Cypress is NodeJS based, open-source end-to-end testing automation framework for web testing. Cypress has emerged as the most generally used test automation tool among JavaScript users. Increasingly, Cypress is the preferred tool for many testers.

Cypress works in the browser DOM elements.

Advantages of Cypress: Key Features

  • Ease of setup — As libraries and dependencies are already defined, no additional setting is required
  • Fast execution — you can receive your test results in a very short time
  • Automatic scrolling — Before performing a certain action, automatic scrolling shows the entire view of every element
  • Takes screenshots when running tests
  • Implicit or explicit wait commands are not required to be added in test scripts. It waits for statements and commands before
  • Cypress comes with top-notch documentation
  • Browser-based — runs directly on the browser. So, no need to install additional software
  • Takes a snapshot at every test step. In this manner, provides checking the state at any step in the test script
  • Easy debugging

Disadvantages of Cypress: The  Limitations

  • Only Javascript support for test case creation/execution
  • There is no multi-language support like Selenium
  • Driving two browsers at once is not possible
  • While Selenium allows screen capture, it does not allow for testing of images, videos, or audio
  • Limited support for mobile testing
  • No multiple tabs support
  • Since it runs directly on the browser, running e2e tests combining multiple platforms is not possible

 

Cypress vs Selenium: Major Differences

Let’s briefly see the differences between Cypress and Selenium in this table:

Selenium Cypress
Supported Languages Supports different programming languages like Java, Python, JavaScript, C#, Ruby, Kotlin JavaScript, Typescript
Supported Browsers Chrome, Firefox, Internet Explorer, Microsoft Edge, Safari Chrome, Firefox, Chromium, Electron, Edge, (experimental support for WebKit, Safari’s browser engine)
Setup & Installation Download the needed driver, set up a grid, network and location impacts execution speed No complex environment setup
Target Audience Mostly by test teams Both testers and developers
Driver Dependency Installing  a relevant browser driver is needed No driver dependency
Multi Tabs Supported Not supported
Open Source Yes Yes / some features are paid
Mobile Testing Support Yes (by using Appium) No

 

WRAPPING UP

Selenium and Cypress have many things in common, but there are also some obvious differences when you compare them.

Determine which tool would be the most effective for your needs by comparing it to your specifications. You should think about using a tool that suits the needs of your project, your particular skills, your team members…

Happy testing!

00
X
[class^="wpforms-"]
[class^="wpforms-"]