WebdriverIO

WebdriverI/O

Selenium 2.0 bindings for NodeJS

Build Status Coverage Status

One Tool To Rule Them All:

Grunt Integration Gulp Integration Sublime Text Plugin Visual Regression Testing with Applitools Eyes WebRTC Analytics Plugin

What is WebdriverIO?

WebdriverIO lets you control a browser or a mobile application with just a few lines of code. Your test code will look simple, concise and easy to read. Creating automated tests is as easy as:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var webdriverio = require('webdriverio');
var options = { desiredCapabilities: { browserName: 'chrome' } };
var client = webdriverio.remote(options);
 
client
.init()
.url('https://duckduckgo.com/')
.setValue('#search_form_input_homepage', 'WebdriverIO')
.click('#search_button_homepage')
.getTitle().then(function(title) {
console.log('Title is: ' + title);
// outputs: "Title is: WebdriverIO (Software) at DuckDuckGo"
})
.end();

Write your test specs with ES6 support!

If you are using Node.js (>=v0.11) or io.js you can write your test specs using yield. The wdio test runner supports ES6 generators and allows you to get rid of nasty callback code.

1
2
3
4
5
6
7
8
9
10
11
12
13
describe('my feature', function() {
it('should do something', function *() {
 
yield browser
.url('https://duckduckgo.com/');
.setValue('#search_form_input_homepage', 'WebdriverIO')
.click('#search_button_homepage');
 
var title = yield browser.getTitle();
console.log(title); // outputs: "Title is: WebdriverIO (Software) at DuckDuckGo"
 
});
});

Easy Test Setup

The wdio command line interface comes with a nice configuration utility that helps you to create your config file in less than a minute.

WDIO configuration utility

How does it work?

WebdriverIO is an open source testing utility for nodejs. It makes it possible to write super easy selenium tests with Javascript in your favorite BDD or TDD test framework. Even Cucumber tests are supported.

It basically sends requests to a Selenium server via the WebDriver Wire Protocol and handles its response. These requests are wrapped in useful commands, which provide callbacks to test several aspects of your site in an automated way.

Run your tests in the cloud

Services like Sauce Labs or BrowserStack provide selenium testing on remote hosts. Be able to run tests on a wide collection of plattforms, devices and browser combinations without any configuration in your enviroment.

WebdriverIO supports services like:

Sauce Labs BrowserStack TestingBot