Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
NodeJS Browser Launcher
JavaScript C++
branch: master

This branch is 3 commits ahead, 76 commits behind ekryski:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
lib
resources
test/local
.gitignore
LICENSE
README.md
package.json

README.md

Launchpad

You can launch browsers! With NodeJS!

  • Local browsers for MacOS, Windows and Linux (like) operating systems
  • BrowserStack browsers using the BrowserStack API
  • Remote browsers using the launchpad server

API

The general API for any launcher (<type>) looks like this:

var launch = require('launchpad');
launch.<type>(configuration, function(error, launcher) {
  launcher.browsers // -> List of available browsers
  launcher(url, configuration, function(error, instance) {
    instance // -> A browser instance
    instance.id // -> unique instance id
    instance.stop(callback) // -> Stop the instance
    instance.status(callback) // -> Get status information about the instance
  });
});

Local launchers

Local launchers look up all currently installed browsers and allow you to start new browser processes.

// Launch a local browser
launch.local(function(err, local) {
  local.browsers // -> List of all browsers found locally
  local.firefox('http://url', function(err, instance) {
    // An instance is an event emitter
    instance.on('stop', function() {
      console.log('Terminated local firefox');
    });
  });
});

Browserstack

BrowserStack is a great cross-browser testing tool and offers API access to any account that is on a monthly plan. Launchpad allows you to start BrowserStack workers through its API like this:

launch.browserstack({
    username : 'user',
    password : 'password'
  },
  function(err, browserstack) {
    browserstack.browsers // -> List of all browsers
    browserstack.ie('http://url', function(err, instance) {
      // Shut the instance down after 5 seconds
      setTimeout(function() {
        instance.stop();
      }, 5000);
  });
});

Behind the scenes we have the node-browserstack module do all the work (API calls) for us.

Remote systems

Launchpad also allows you to start browsers on other systems that are running the Launchpad server.

The launchpad server

The launchpad server is a simple implementation of the BrowserStack API (Version 1) which provides a RESTful interface to start and stop browsers. You can set up a Launchpad server like this:

launch.server({
  username : 'launcher',
  password : 'testing'
}).listen(8080, function () {
  console.log('Listeining...');
});

Launching remote servers

Because the Launchpad server is compatible with the BrowserStack API (Version 1), you could basically use any BrowserStack API client, connect to the server and start browsers.

The included remote launcher does exactly that by wrapping BrowserStack launcher and pointing it to the given host:

launch.remote({
  host : 'ie7machine',
  username : 'launcher',
  password : 'testing'
}, function(err, api) {
  api.browsers // -> List of browsers found on ie7machine
  api('http://github.com', {
    browser : 'safari',
    version : 'latest'
  }, function(err, instance) {
  });
});
Something went wrong with that request. Please try again.