Cypress vs WebdriverIO | Which one to pick? | SDET Unicorns

In this article, I will go over one of the most common questions that I get asked and that is – what is the difference between Cypress & WebdriverIO and which one should you pick? We will cover everything from top features, to framework limitations to browser support and a lot more…

Language Support & Popularity

FrameworkCypressWebdriverIO
Language SupportJavaScript / TypeScriptJavaScript / TypeScript
GitHub Stars~38K~7.5K
Downloads (npm)~3.5M~1M
Releases1-2 weeksWeekly

Key Features

CypressWebdriverIO
Beginner friendly setupBeginner friendly setup (customizable)
Tests are easy to read & understandTests are easy to understand for JS users 
Not dependent on Selenium WebdriverUses custom implementation of Webdriver
Interactive test runnerCLI test runner only
Built-in wait and retriesBuilt-in wait and retries
API testing supportedNeed external libraries

Limitations

CypressWebdriverIO
Limited browser supportAsync-await syntax can be confusing for beginners
Cross-origin restrictionsDifficult to debug tests
Multi-tab and multi-window not supportedNo paid features
Built-in parallelization not supportedLots of customization can be overwhelming
Not as customizable

Cypress:

WebdriverIO:


Browser Support

CypressWebdriverIO
Supports Chromium family (Chrome, Edge, Electron, Brave) and FirefoxSupports all major browsers (Chrome, Firefox, Edge, IE and Safari)

Native Mobile Support

CypressWebdriverIO
No support 🙁Possible using Appium

Technical Differences

FeaturesCypressWebdriverIO
Locators SupportCSS Selector, (XPath plugin)CSS, XPath
iFrame SupportDifficult to work withEasy to switch to iFrame
Shadow DomSupportedSupported
Network InterceptionBuilt-inConfigurable
Google LighthouseExternal PluginBuilt-in (DevTools Service)

Miscellaneous differences

FeaturesCypressWebdriverIO
Test FrameworkMocha, Cucumber (external)Mocha, Jasmine, Cucumber
ParallelizationPossible with paid planBuilt-in
ReportersSpec, Mocha, CustomSpec, Allure, Report Portal, etc.. 
CI/CDPossible with major CI/CDPossible with major CI/CD
DocumentationIntuitive and OpinionatedGood documentation
Community SupportGrowing CommunityDecent Community Support

Which one to pick?

So that was all the major differences and similarities between Cypress and WebdriverIO. Now the question is which one to pick for your next automation project? Well the answer is – It Depends

What you should rather be asking is – What are the requirements? Understand the requirements first.

For example, if the requirement is to run tests in Chrome and Safari as that’s where the majority of the users are then probably it’s better to go with WebdriverIO. Or, may be you one suite for Web and Mobile, then again it’s a better choice to go with WebdriverIO.

On the other hand, if the requirement, is to execute tests on chromium based browsers only and you need a good dashboard that can give you an overview of all your tests, then probably its better to go with Cypress if the team is ok to go with a paid option.

To conclude, both frameworks are great and have their own pros/cons but its up-to you to look at what exactly you need for your next automation project based on your project requirements and then make a decision accordingly by referring to this article.


To learn more in detail about the differences and similarities between Cypress and WebdriverIO, checkout this video –


If you are interested in learning more about WebdriverIO, then checkout my courses on Udemy below –

Leave a Reply

Your email address will not be published. Required fields are marked *