Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    selenium-node-webdriverpublic

    selenium-node-webdriver

    Drive PhantomJS 1.8+ from Node.js using Selenium's WebDriver

    This module provides a simple wrapper around the Node.js WebDriver implementation that ships with Selenium.

    Prerequisites

    Installation

    npm install selenium-node-webdriver

    Usage

    phantomjs --webdriver=4444 &
    node node_modules/selenium-node-webdriver/examples/hello.js

    This example (examples/hello.js) queries Google for 'webdriver' and returns the titles of the results.

    var WebDriver = require('selenium-node-webdriver');
     
    WebDriver().
        then(function (driver) {
            driver.get('http://www.google.com').
                then(function () {
                    return driver.
                        findElement(driver.webdriver.By.name('q')).
                        sendKeys('webdriver');
                }).
                then(function () {
                    return driver.
                        findElement(driver.webdriver.By.name('btnG')).click();
                }).
                then(function () {
                    return driver.executeScript(function () {
                        return Array.prototype.slice.
                            call(document.querySelectorAll('h3.r')).
                            map(function (result) {
                                return result.textContent;
                            });
                    });
                }).
                then(function (results) {
                    results.forEach(function (result) {
                        console.log(result);
                    });
                    driver.quit();
                });
        });

    API

    require('selenium-node-webdriver')(config <object>) -> Promise

    The module exports a factory function which accepts a config object and returns a promise. The config object has two properties, both of which are optional:

    server: describes the WebDriver server to connect to; it has the following properties:

    • host: the server's hostname (localhost)
    • port: the port to connect to (4444)
    • retries: the number of times to try to connect to the server (5)
    • delay: the delay in ms between connection attempts (500)

    capabilities: describes the capabilities of the WebDriver client you are creating. It has the following properties by default:

    • browserName: 'chrome'
    • version: ''
    • platform: 'ANY'
    • javascriptEnabled: true

    The returned promise is resolved with a RemoteWebDriver instance if the connection succeeds or rejected with the error from the final retry if connection fails.

    Useful documentation

    Selenium

    WebDriverJS: an introduction to using JavaScript as a WebDriver client

    The WebDriver Protocol

    License

    Apache License, Version 2.0

    Keywords

    none

    install

    npm i selenium-node-webdriver

    Downloadsweekly downloads

    49

    version

    0.1.2

    license

    none

    repository

    github.com

    last publish

    collaborators

    • avatar