Pros of using Selenium:
Open-source software so it’s Free.
Integrated with Agile, DevOps, Continuous Delivery workflow.
Supports mobile testing.
Wide range of supported languages, platforms, and browsers.
Large library of plugins and extensions.
Reduce overall test execution time.
Automating Web UI components.
Ease of Implementation.
Well integrated with other DevOps tools such as Jenkin and Gitlab to automate the CICD pipeline.
Record and play features.
Cons of using Selenium:
Steep learning curve.
Only used for web-based apps.
No built-in image comparison.
No tech supports.
No reporting capabilities.
Advanced programming skills are required.
Pros of WebdriverIO:
Works with any testing framework or assertion library
Excellent API documentation
Config file generation wizard
Provides plugins for a gulp
Simpler syntax than selenium-webdriverjs and WD.js
Selenium Server need not be started independently
Cons of WebdriverIO:
Must run with WDIO to debug
Selenium server must be started independently
Have no docs for the latest version (4.0.5)
Pros of Cypress:
Cypress does not use Selenium: most of the end-to-end tools that we have experimented with, are using Selenium, that’s why they have almost the same problems.
Cypress supports any framework or website quite well: There are hundreds of projects using the latest React, Angular, Vue, Elm, etc. frameworks. Cypress also works equally well on older server-rendered pages or applications.
There are no dependencies, you put your test in package.json and that’s it.
Cypress runs much, much faster in comparison with the end-to-end tools by Selenium that we have experimented with.
There is a screenshot for every step, of your script, which can be quite helpful if there is any false passing or failing test, yeah good for debugging!!
Cypress has a clear syntax, it is easy to read it, you will like it!!
Cons of Cypress:
The structure was different from the other Selenium end-to-end tools, so at first, you may need to spend more time understanding the structure and finding the best way to create your scripts.
Community: As Cypress is relatively new, the community is small. You will have trouble finding answers to problems etc.
Features. No file upload support. No cross-browser testing. Who knows when these things will be covered, as for big projects these features are crucial.
Page Object Model. It is something that has already been proven over time. Cypress supports a different approach which could be controversial.