Newborn Programming Monsters
Have ideas to improve npm?Join in the discussion! »

wd-syncTypeScript icon, indicating that this package has built-in type declarations

1.2.5 • Public • Published

wd-sync

A synchronous version with a nice api of wd, the lightweight WebDriver / Selenium2 client for node.js, built using node-fibers.

Site

Note: headless zombie was removed in 1.1.0

status

Build Status Selenium Test Status

Selenium Test Status

install

npm install wd-sync

code samples

CoffeeScript

# assumes that selenium server is running 
 
wdSync = require 'wd-sync'
 
# 1/ simple Wd example 
 
{browsersync} = 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()
 

JavaScript

// 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();
 
});
 

doc

Note: Doc and README modifications must be done in the doc/template directory.

examples

api

supported

full JsonWireProtocol mapping

available environments

WebDriver

local WebDriver / Selenium2 server

Sauce Labs

Remote testing with Sauce Labs.

running tests

local / selenium server:

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 

remote / Sauce Labs

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

building doc/mapping

README + doc

1/ Update the templates

2/ run make build_doc

mappings

1/ Upgrade wd

2/ run make build_mapping

publishing

npm version [patch|minor|major]
git push --tags origin master
npm publish

Keywords

none

Install

npm i wd-sync

DownloadsWeekly Downloads

3

Version

1.2.5

License

none

Last publish

Collaborators

  • avatar