bridge between the wd driver and other selenium clients
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
test
.gitignore
.jscs.json
.jshintrc
LICENCE
Makefile
README.md
index.js
package.json

README.md

#wd-bridge

NPM version Dependency Status devDependency Status

bridge between the wd driver and other selenium clients

#install

npm install wd-bridge

#usage

##Selenium WebdriverJs

var wd = require('wd'),
    wdBridge = require('wd-bridge')(wd),
    seleniumWebdriver = require('selenium-webdriver');

var builder = new seleniumWebdriver.Builder()
  .usingServer('http://localhost:4444/wd/hub')
  .withCapabilities(seleniumWebdriver.Capabilities.chrome());
var driver = builder.build();
var wdDriver;
wdBridge
  .initFromSeleniumWebdriver(builder, driver)
  .then(function (_wdDriver) { wdDriver = _wdDriver; })
  .then(function () {
    return driver.get('http://docs.seleniumhq.org/');
  }).then(function () { return driver.getTitle(); })
  .then(function (title) {
    console.log('title from driver -->', title);
  }).then(function () { return wdDriver.title(); })
  .then(function (title) {
    console.log('title from wdDriver -->', title);
  }).then(function () {
    // converting to wd element
    return driver.findElement(seleniumWebdriver.By.id('mainContent'))
      .then(function (el) {
        return wdDriver.wdEl(el).text();
      })
      .then(function (text) {
        console.log('text after converting to wd element -->',
          text.substring(0, 50));
      });
  }).then(function () {
    // converting from wd element
    return wdDriver.elementById('mainContent')
      .then(function (el) {
        return wdDriver.swEl(el).getText();
      }).then(function (text) {
        console.log('text after converting from wd element -->',
          text.substring(0, 50));
      });
  }).then(function () { return driver.quit(); })
  .done();

##Protractor

config:

"use strict";

var wd = require('wd'),
    wdBridge = require('wd-bridge')(wd);

// An example configuration file.
var config = exports.config = {
  // The address of a running selenium server.
  seleniumAddress: 'http://localhost:4444/wd/hub',

  // Capabilities to be passed to the webdriver instance.
  capabilities: {
    'browserName': 'chrome'
  },

  // Spec patterns are relative to the current working directly when
  // protractor is called.
  specs: ['example_spec.js'],

  // Options to be passed to Jasmine-node.
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30000
  },

  // configuring wd in onPrepare
  onPrepare: function () {
    wdBridge.initFromProtractor(config);
  }
};

specs (use the global wdBrowser variable):

describe('angularjs homepage', function () {
  beforeEach(function () {
    browser.get('http://www.angularjs.org');
  });

  // regular protractor tests

  it('should be able to use wdBrowser ', function (done) {
    wdBrowser.title().then(function (title) {
      expect(title).toEqual('AngularJS — Superheroic JavaScript MVW Framework');
    }).nodeify(done);
  });

  it('should convert to wd element', function (done) {
    var el = element.all(by.repeater('todo in todos')).get(1);
    wdBrowser.wdEl(el).text().then(function (text) {
      expect(text).toEqual('build an angular app');
    }).nodeify(done);
  });

  it('should convert from wd element', function (done) {
    return wdBrowser
      .elementById('add-some-control')
      .then(function (el) {
        return wdBrowser.swEl(el).getText().then(function (text) {
          expect(text).toEqual('Add Some Control');
        });
      }).nodeify(done);
  });
});