wd-parallel

WebDriver/Selenium 2 node.js client

WD.js -- A light weight WebDriver/Se2 client for node.js

http://nodejs.org/#download

...

  • License - Apache 2: http://www.apache.org/licenses/LICENSE-2.0

...

Start by importing the required library.

try {
  p_webdriver = require('wd-parallel');
} catch( err ) { 
  p_webdriver = require('../lib/main');
}

Then create a default multiple browser object.

var browsers = p_webdriver.remote();

Now add a test method to the multiple browser object. This method needs to arguments named browser and desired.

  • This method contains your test logic.
  • Test should be run as if to be run on an object named browser.
browsers.test = function(browser, desired) {
console.log("server status:", browser.status());
browser.init(desired);
    
browser.get("http://google.com");
console.log("title is "+browser.title());

var queryField = browser.elementByName('q');
browser.type(queryField, "Hello World");
browser.type(queryField, "\n");

browser.setWaitTimeout(3000);
browser.elementByCss('#ires'); // waiting for new page to load
console.log(browser.title());

browser.quit();

};

Load the configuration for all your browsers from your configuration file.

//Load configuration file
browsers.loadConfigFile("examples/config.json");

Now you can go ahead and run the test !

//Run test on all browsers
browsers.run();

This uses node-wd-sync written by sebv so you can check this page on supported methods.

full mapping

WD is simply implementing the Selenium JsonWireProtocol, for more details see the official docs:
 - http://code.google.com/p/selenium/wiki/JsonWireProtocol

...