<commit_before>![WebdriverIO](http://www.christian-bromann.com/wdio.png)
WebdriverIO
===========

[![Build Status](https://travis-ci.org/webdriverio/webdriverio.png?branch=master)](https://travis-ci.org/webdriverio/webdriverio) [![Coverage Status](https://coveralls.io/repos/webdriverio/webdriverio/badge.png?branch=master&)](https://coveralls.io/r/webdriverio/webdriverio?branch=master) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/webdriverio/webdriverio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
<br><br>
[![Selenium Test Status](https://saucelabs.com/browser-matrix/webdriverio.svg)](https://saucelabs.com/u/webdriverio)

***

#### [Homepage](http://webdriver.io) | [Developer Guide](http://webdriver.io/guide.html) | [API Reference](http://webdriver.io/api.html) | [Contribute](http://webdriver.io/contribute.html)

This library is a [webdriver](https://w3c.github.io/webdriver/webdriver-spec.html)
(browser automation) module for Node.JS. It makes it possible to write
super easy [Selenium](https://en.wikipedia.org/wiki/Selenium_(software)) tests in your favorite
BDD/TDD test framework, that will run locally or in the cloud using Sauce Labs, Browsertack or Testingbot.

## Installation

```shell
npm install webdriverio
```

or if you want to use the wdio test runner

```shell
npm install -g webdriverio
```

## Getting started

Simply run `wdio config` and the configuration helper wizard will get you set up:

![wdio wizard](http://webdriver.io/images/config-utility.gif)

With all that done, have a look at the many [examples](examples/).

## Plugins

[![Grunt Integration](http://webdriver.io/images/plugins/grunt.png)](https://github.com/webdriverio/grunt-webdriver)
[![Gulp Integration](http://webdriver.io/images/plugins/gulp.png)](https://github.com/webdriverio/gulp-webdriver)
[![Sublime Text Plugin](http://webdriver.io/images/plugins/sublime.png)](https://packagecontrol.io/packages/WebdriverIO)
[![Visual Regression Testing with Applitools Eyes](http://webdriver.io/images/plugins/applitools.png)](https://github.com/webdriverio/webdrivercss#applitools-eyes-support)
[![WebRTC Analytics Plugin](http://webdriver.io/images/plugins/webrtc.png)](https://github.com/webdriverio/webdriverrtc)

## Syantax example

```js
client
    .url('http://google.com')
    .setValue('#q', 'webdriver')
    .click('#btnG')
```

Notice how this is far simpler than with the original [selenium-webdriverjs](https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs),

```js
driver.get('http://www.google.com');
driver.findElement(webdriver.By.id('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.id('btnG')).click();
```

and significantly simpler than with [WD.js](https://github.com/admc/wd):

```js
browser
  .get("http://www.google.com")
  .elementById('q')
  .sendKeys('webdriver')
  .elementById('btnG')
  .click()
```
<commit_msg>Typo fix and list brief difference from Nightwatch and Intern<commit_after>![WebdriverIO](http://www.christian-bromann.com/wdio.png)
WebdriverIO
===========

[![Build Status](https://travis-ci.org/webdriverio/webdriverio.png?branch=master)](https://travis-ci.org/webdriverio/webdriverio) [![Coverage Status](https://coveralls.io/repos/webdriverio/webdriverio/badge.png?branch=master&)](https://coveralls.io/r/webdriverio/webdriverio?branch=master) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/webdriverio/webdriverio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
<br><br>
[![Selenium Test Status](https://saucelabs.com/browser-matrix/webdriverio.svg)](https://saucelabs.com/u/webdriverio)

***

#### [Homepage](http://webdriver.io) | [Developer Guide](http://webdriver.io/guide.html) | [API Reference](http://webdriver.io/api.html) | [Contribute](http://webdriver.io/contribute.html)

This library is a [webdriver](https://w3c.github.io/webdriver/webdriver-spec.html)
(browser automation) module for Node.JS. It makes it possible to write
super easy [Selenium](https://en.wikipedia.org/wiki/Selenium_(software)) tests in your favorite
BDD/TDD test framework, that will run locally or in the cloud using Sauce Labs, Browsertack or Testingbot.

Unlike integrated testing frameworks (Nightwatch, Intern), WebdriverIO lets you use your favorite test framework,
such as Cucumber, which the other two don't officially support ([1](https://github.com/nightwatchjs/nightwatch/issues/22#issuecomment-34429738),
[2](https://github.com/theintern/intern/pull/196)).

## Installation

```shell
npm install webdriverio
```

or if you want to use the wdio test runner

```shell
npm install -g webdriverio
```

## Getting started

Simply run `wdio config` and the configuration helper wizard will get you set up:

![wdio wizard](http://webdriver.io/images/config-utility.gif)

With all that done, have a look at the many [examples](examples/).

## Plugins

[![Grunt Integration](http://webdriver.io/images/plugins/grunt.png)](https://github.com/webdriverio/grunt-webdriver)
[![Gulp Integration](http://webdriver.io/images/plugins/gulp.png)](https://github.com/webdriverio/gulp-webdriver)
[![Sublime Text Plugin](http://webdriver.io/images/plugins/sublime.png)](https://packagecontrol.io/packages/WebdriverIO)
[![Visual Regression Testing with Applitools Eyes](http://webdriver.io/images/plugins/applitools.png)](https://github.com/webdriverio/webdrivercss#applitools-eyes-support)
[![WebRTC Analytics Plugin](http://webdriver.io/images/plugins/webrtc.png)](https://github.com/webdriverio/webdriverrtc)

## Syntax example

```js
client
    .url('http://google.com')
    .setValue('#q', 'webdriver')
    .click('#btnG')
```

Notice how this is far simpler than with the original [selenium-webdriverjs](https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs),

```js
driver.get('http://www.google.com');
driver.findElement(webdriver.By.id('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.id('btnG')).click();
```

and significantly simpler than with [WD.js](https://github.com/admc/wd):

```js
browser
  .get("http://www.google.com")
  .elementById('q')
  .sendKeys('webdriver')
  .elementById('btnG')
  .click()
```

{'fraction_non_alphanumeric': 0.1751742019121698, 'fraction_numerical': 0.0027548209366391185, 'mean_word_length': 5.804851157662624, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 36, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3446426', 'n_tokens_mistral': 2152, 'n_tokens_neox': 2050, 'n_words': 355}