UNPKG

selenium-standalone

Version:

installs a `selenium-standalone` command line to install and start a standalone selenium server

53 lines (45 loc) 1.59 kB
var URI = require('urijs'); var PROCESS_TYPES = exports.PROCESS_TYPES = { STANDALONE: 0, GRID_HUB: 1, GRID_NODE: 2 }; exports.getRunningProcessType = function(seleniumArgs) { var roleArg = seleniumArgs.indexOf('-role'); var role = (roleArg !== -1) ? seleniumArgs[roleArg + 1] : undefined; if (roleArg === -1) return PROCESS_TYPES.STANDALONE; else if (role === 'hub') return PROCESS_TYPES.GRID_HUB; else if (role === 'node') return PROCESS_TYPES.GRID_NODE; else return undefined; } exports.getSeleniumStatusUrl = function(seleniumArgs) { var processType = this.getRunningProcessType(seleniumArgs); var portArg = seleniumArgs.indexOf('-port'); var port = (portArg !== -1) ? seleniumArgs[portArg + 1] : undefined; var hostArg = seleniumArgs.indexOf('-host'); var host = (hostArg !== -1) ? seleniumArgs[hostArg + 1] : 'localhost'; var statusURI = new URI('http://' + host); var nodeStatusAPIPath = '/wd/hub/status'; var hubStatusAPIPath = '/grid/api/hub'; switch (processType) { case PROCESS_TYPES.STANDALONE: statusURI.port(4444); statusURI.path(nodeStatusAPIPath); break; case PROCESS_TYPES.GRID_HUB: statusURI.port(4444); statusURI.path(hubStatusAPIPath); break; case PROCESS_TYPES.GRID_NODE: statusURI.port(5555); statusURI.path(nodeStatusAPIPath); break; default: throw 'ERROR: Trying to run selenium in an unknown way.'; } // Running with a non-default port if (portArg !== -1) { statusURI.port(seleniumArgs[portArg + 1]); } return statusURI.toString(); }