Cypress is often compared to Selenium; however, Cypress is both fundamentally and architecturally different from Selenium. The most important part of it is that it doesn't build on Selenium WebDriver.
- Open Source: Cypress is an MIT-licensed free and open-source automation tool. Test Runner for Cypress is free and open-source testing software. Their Dashboard Service application provides multiple billing plans, including the free one.
- Visual Interface: Cypress runs the tests in a unique interactive manner where users can see step-by-step test command execution and its output simultaneously. You can see which all commands are running, passed, or failed, along with captured screenshots and videos.
- Execute Test in Real Browser: Cypress and Node Server Process work together to achieve success while testing. Compared with Selenium, where test command execution happens via browser drivers, Cypress testing command execution occurs directly in the actual browser. Cypress executes the majority of its command in a browser; that's why there is no network lag, and execution is faster.
- Write all types of tests: Cypress enables you to write all kinds of tests: End-to-end tests, Integration tests, and Unit tests.
- Next-generation Tool: Cypress is a next-generation automation testing tool built for the modern web application. Cypress can test anything that runs in a browser. Also, at the browser level, Cypress can access everything from Dev Tools. Cypress is created and optimized as a tool for local development. It provides a platform to debug and maintain your code easily and quickly.
- Good Documentation: Cypress has excellent documentation online.
- Easy to Setup: Cypress is much easier to set up than other tools. All required dependencies are already in place for a standard installation. Installing any additional plugin is very easy.
- Smart Automating Waiting: It even uses Smart automating waiting before it makes any actions to make the tests stable and robust. As it automatically waits for DOM to be loaded, you don't have to implement additional waits like implicit or explicit.