A synchronous version with a nice api of wd, the lightweight WebDriver / Selenium2 client for node.js, built using node-fibers.
Note: headless zombie was removed in 1.1.0
npm install wd-sync
# assumes that selenium server is running
wdSync = require 'wd-sync'
# 1/ simple Wd example
{browser, sync} = wdSync.remote()
sync ->
console.log "server status:", @status()
@init browserName:'firefox'
console.log "session id:", @getSessionId()
console.log "session capabilities:", @sessionCapabilities()
@get "http://google.com"
console.log @title()
queryField = @elementByName 'q'
@type queryField, "Hello World"
@type queryField, "\n"
@setWaitTimeout 3000
@elementByCss '#ires' # waiting for new page to load
console.log @title()
console.log @elementByNameIfExists 'not_exists' # undefined
@quit()
// assumes that selenium server is running
var wdSync = require('wd-sync');
// 1/ simple Wd example
var client = wdSync.remote()
, browser = client.browser
, sync = client.sync;
sync( function() {
console.log("server status:", browser.status());
browser.init( { browserName: 'firefox'} );
console.log("session id:", browser.getSessionId());
console.log("session capabilities:", browser.sessionCapabilities());
browser.get("http://google.com");
console.log(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());
console.log(browser.elementByNameIfExists('not_exists')); // undefined
browser.quit();
});
Note: Doc and README modifications must be done in the doc/template directory.
local WebDriver / Selenium2 server
Remote testing with Sauce Labs.
1/ Install and start Selenium server
./node_modules/.bin/install_selenium
./node_modules/.bin/install_chromedriver
./node_modules/.bin/start_selenium_with_chromedriver
2/ run tests
make test
1/ configure sauce environment
export SAUCE_USERNAME=<SAUCE_USERNAME>
export SAUCE_ACCESS_KEY=<SAUCE_ACCESS_KEY>
# if using sauce connect
./node_modules/.bin/install_sauce_connect
./node_modules/.bin/start_sauce_connect
2/ run tests
make test_e2e_sauce
make test_midway_sauce_connect
1/ Update the templates
2/ run make build_doc
1/ Upgrade wd
2/ run make build_mapping
npm version [patch|minor|major]
git push --tags origin master
npm publish