nuǝW pǝuoᴉʇᴉsoԀ ʎlǝʌᴉʇɐƃǝN
    Have ideas to improve npm?Join in the discussion! »

    wd-sync

    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

    61

    Version

    1.2.5

    License

    none

    Last publish

    Collaborators

    • avatar