When comparing WebdriverIO vs Leadfoot -> Intern, the Slant community recommends WebdriverIO for most people. In the question“What are the best Node.JS Selenium WebDriver client libraries / bindings?” WebdriverIO is ranked 1st while Leadfoot -> Intern is ranked 4th. The most important reason people chose WebdriverIO is:
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 Extensive, clear documentation
The documentation starts by describing what Intern is, what it's good for, who it's good for, its terminology, and continues with a tutorial.
Pro Used by big players
Intern is used by big companies such as IBM, Intuit and Mozilla.
Pro Comparisons available with Jasmine, Mocha, Karma, QUnit, Nightwatch, BusterJS
A project that compares itself with prior art has done its homework.
Pro Dojo Foundation project
Intern (and Leadfoot) is a Dojo Foundation project. The Dojo Foundation is sponsored by IBM, Google, TIBCO and other heavyweights.
Pro Always uses Promises
Since it always uses Promise objects every time an asynchronous operation needs to occur, the test system pauses until that Promise object is resolved, or until a timeout occurs. Suite, test and reporter functions can return a Promise.
Pro Integrates with cloud hosted cross-browser testing services
Can integrate with cloud hosting services from BrowserStack, Sauce Labs and TestingBot.
Pro Built-in support for source maps
The built-in support for source maps allows you to easily track issues to the original source files.
Pro Continuous Integration support
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 Intern has no Cucumber support yet
Leadfoot can be used standalone though.
Con May be overkill for small apps
Intern is a complete testing framework that's designed to work well for enterprise applications. For small projects, the complexity of Intern can be unnecessary.