WebdriverIO lets you use your favorite testing framework (Jasmine, Mocha, Cucumber) and assertion library (Chai for Mocha). Other projects implement their own testing and assertion APIs, for example [Nightwatch](http://nightwatchjs.org/api), [Intern](https://theintern.github.io/intern/#writing-functional-test). It should be mentioned though that v4.2.16 has an incompatibility with at least [tap](http://www.node-tap.org/) v7.1.2: stdout/stderr written during a run gets lost.
Ranked in these QuestionsQuestion Ranking
Pro Works with any testing framework or assertion library
WebdriverIO lets you use your favorite testing framework (Jasmine, Mocha, Cucumber) and assertion library (Chai for Mocha). Other projects implement their own testing and assertion APIs, for example Nightwatch, Intern.
It should be mentioned though that v4.2.16 has an incompatibility with at least tap v7.1.2: stdout/stderr written during a run gets lost.
Pro Used by Chimp.js
Chimp.js, is an emerging web application test framework that implements easy sync tests using WebdriverIO, CucumberJS and Chai. Features include:
- synchronous style
- built-in "widget framework" (an implementation of the PageObject pattern)
- automatically downloads dependencies (ChromeDriver, PhantomJS etc.)
- works with SauceLabs and BrowserStack (CrossBrowserTesting TBD)
- automatically takes screenshots on failures
- works on Windows in addition to Linux and OS X
- automatically produces boilerplate code for step definitions, which you can copy, paste and edit
- file watcher reuses the browser sessions and can run only the tests you tag, to maximize development speed
Pro Excellent API documentation
Pro Synchronous implementation of asynchronous browser commands
So you don't need to worry about promises
Pro Config file generation wizard
wdio config and WebdriverIO will generate a config file for testing locally vs. in the cloud, specifying the test framework (Jasmine, Cucumber, Mocha), where to find tests and store screenshots etc.
Pro Allows you to do visual regression tests using WebdriverCSS
WebdriverIO has a plugin called WebdriverCSS that allows you to do cross visual platfrom/browser tests with an integration to Applitools.
Pro Provides plugins for gulp, grunt and other
WebdriverIO is accessible via gulp and grunt and even has a Sublime Text plugin for autocompletion.
Pro Simpler syntax than selenium-webdriverjs and WD.js
driver.get('http://www.google.com'); driver.findElement(webdriver.By.id('q')).sendKeys('webdriver'); driver.findElement(webdriver.By.id('btnG')).click();
browser .get("http://www.google.com") .elementById('q') .sendKeys('webdriver') .elementById('btnG') .click()
client .url('http://google.com') .setValue('#q','webdriver') .click('#btnG')
Pro Used by Meteor's Velocity test runner
If you develop web applications with Meteor.js, you might want to use the xlovio:webdriver wrapper, because it's the Selenium binding behind the preferred testing framework (Chimp) promoted by the Velocity (Meteor's official testing framework) team for using BDD via Cucumber.
Pro Selenium Server need not be started independently
Service is provided by WebdriverIO which over comes the con of starting selenium server independently.
Pro Codeless automated testing
Endtest allows you to create automated tests for web applications, directly on their cloud infrastructure. No coding skills are required.
Pro Running your automated tests on their cloud infrastructure
You can easily run your automated tests on their platform, just by clicking the run button.
Pro Designed for Continuous Integration
It has an API which allows testers to run it on Jenkins or Team City. Other than that, it has a built-in test scheduler to allow testers to preset test executions.
Pro Now supports mobile testing
Endtest has added a new feature which now supports mobile testing for both Android and iOS (.apk and .ipa).
Pro Option to export your automated tests in different formats, including .EXE
You can export your automated tests in a variety of different formats, and run them on your own infrastructure. The formats are either in Python file format or executable file format (.EXE).
Pro Now supports a wider variety of browsers, operating system and devices
As of March 2018, Endtest can now support multiple platforms (Windows, MAC, Android and iOS), Operating Systems, and more than a handful of devices for both Android and iOS.
Pro Super fast and affordable.
Pro Premium version is relatively cheaper than most in the market
Their pricing plan ($79/month or $650/year) includes team plan upgrade, which means the whole team, regardless of the number of users, will only need to subscribe to the $79/month or $650/year plan. This includes unlimited test runs, test exports, recordings, etc.
Pro It's mostly free to use
The free plan covers a lot, you can have up to 3 test suites, and you can run your automated tests as many times as you want. The pro plan includes some very advanced options that you might need only if you're working with a team (for example, the collaboration feature, schedule test run, API for Jenkins, etc.).
Con Must run with WDIO to debug
Tasks written in this beautiful Selenium API can only be debugged using the provided WDIO task runner. You can't set breakpoints within tasks, but you can have WDIO pause the run between Selenium commands.
Con Selenium server must be started independently
selenium-webdriverjs starts the Selenium server automatically, and actually manages to achieve a faster startup time (4 seconds vs. 5.5) than WebdriverIO.
Con Have no docs for latest version (4.0.5)
Con Doesn't support a wide array of browsers and/or operating systems
Because it's still in its infancy, it doesn't yet have a huge variety of browsers and operating systems.
Con Free plan has limited time storage for test suites
If you are using the free plan, keep in mind that the test suites created there are scheduled to be deleted after around 2 weeks. Endtest will send you a notification email the day before mentioning "Test suites from users who are not on the PRO Plan get automatically deleted after some time," and offering for you to upgrade to PRO.