WebdriverIO Vs Selenium Webdriver (Java Approach) WebdriverIO Vs Selenium Webdriver (Java Approach) node.js node.js

WebdriverIO Vs Selenium Webdriver (Java Approach)


WebdriverIO is a JavaScript / nodejs implementation of the (Selenium 2.0) WebDriver API - one of many (Selendroid, Protractor, etc.) As the specification says:

WebDriver is a remote control interface that enables introspection and control of user agents. It provides a platform- and language-neutral wire protocol as a way for out-of-process programs to remotely instruct the behaviour of web browsers.

If you use Java, you'll use the Java implementation of WebDriver. Which language, and which implementation you choose, is up to you, your skills, and the skill of your team.

Though I very much doubt that WebdriverIO is "not mature enough". WebDriver is a fine spec, with a number of powerful implementations, but it is very frequently misused. Certainly as far as newbies go, a very large proportion of "random" failures are completely avoidable race conditions within their test code.


So we are using a Java - Selenium, Serenity, JBehave test framework and then the Javascript WebdriverIO, Mocha, and Yodda.

I think the Java approach is easier to understand and debug. Easier to understand because website testing is mostly sequential, you navigate from one page to another, click on a button, and fill out a form. It saves you from any async issues you run into using the JS alternative. Debugging is very nice because you have classes and a fixed structure to everything.

The second project uses NodeJS in the backend so integrating the testing framework was alot easier. The testing framework became part of the deployment/development process.