A node.js JavaScript client for working with BrowserStack through its API.
Support this project by donating on Gittip.
npm install browserstack
var BrowserStack = require( "browserstack" );
var client = BrowserStack.createClient({
username: "foo",
password: "p455w0rd!!1"
});
client.getBrowsers(function( error, browsers ) {
console.log( "The following browsers are available for testing" );
console.log( browsers );
});Note: The API documented here is for the latest supported version (v3). For earlier versions, please see the wiki.
A common pattern in the API is a "browser object" which is just a plain object with the following properties:
os: The operating system.os_version: The operating system version.browser: The browser name.browser_version: The browser version.device: The device name.
A browser object may only have one of browser or device set; which property is set will depend on os.
Worker objects are extended browser objects which contain the following additional properties:
id: The worker id.status: A string representing the current status of the worker.- Possible statuses:
"running","queue".
- Possible statuses:
Creates a new client instance.
settings: A hash of settings that apply to all requests for the new client.username: The username for the BrowserStack account.password: The password for the BrowserStack account.version(optional; default:3): Which version of the BrowserStack API to use.server(optional; default:{ host: "api.browserstack.com", port: 80 }): An object containinghostandportto connect to a different BrowserStack API compatible service.
Gets the list of available browsers.
callback(function( error, browsers )): A callback to invoke when the API call is complete.browsers: An array of browser objects.
Creates a worker.
settings: A hash of settings for the worker (an extended browser object).os: See browser object for details.os_version: See browser object for details.browser: See browser object for details.browser_version: See browser object for details.device: See browser object for details.url(optional): Which URL to navigate to upon creation.timeout(optional): Maximum life of the worker (in seconds). Use 0 for "forever" (BrowserStack will kill the worker after 1,800 seconds).
callback(function( error, worker )): A callback to invoke when the API call is complete.workerA worker object.
Note: A special value of "latest" is supported for browser_version, which will use the latest stable version.
Gets the status of a worker.
id: The id of the worker.callback(function( error, worker )): A callback to invoke when the API call is complete.worker: A worker object.
Terminates an active worker.
id: The id of the worker to terminate.callback(function( error, data )): A callback to invoke when the API call is complete.data: An object with atimeproperty indicating how long the worker was alive.
Gets the status of all workers.
callback(function( error, workers )): A callback to invoke when the API call is complete.workers: An array of worker objects.
Take a screenshot at current state of worker.
callback(function( error, data )): A callback to invoke when the API call is complete.data: An object with aurlproperty having the public url for the screenshot.
Gets the latest version of a browser.
browser: Which browser to get the latest version for. See browser object for details.callback(function( error, version )): A callback to invoke when the version is determined.version: The latest version of the browser.
Note: Since mobile devices do not have version numbers, there is no latest version.
Gets the latest version of all browsers.
callback(function( error, versions )): A callback to invoke when the versions are determined.versions: A hash of browser names and versions.
callback(function( error, status )): A callback to invoke when the status is determined.used_time: Time used so far this month, in seconds.total_available_time: Total available time, in seconds. Paid plans have unlimited API time and will receive the string"Unlimited Testing Time"instead of a number.running_sessions: Number of running sessions.sessions_limit: Number of allowable concurrent sessions.
Copyright 2014 Scott González. Released under the terms of the MIT license.
Support this project by donating on Gittip.