selenium-binaries
Version:
Downloads Selenium related binaries for your OS
66 lines (55 loc) • 1.55 kB
JavaScript
;
var fs = require('fs');
var path = require('path');
var async = require('async');
var rimraf = require('rimraf');
var cli = require('./cli');
var config = require('./config');
var initDriver = require('./init-driver');
var configureIe = require('./configure-ie');
try {
// reset drivers if any critical config has changed (such as arch version).
var lastConfig = require('../last-config.json');
if (lastConfig.is64 !== config.is64 || lastConfig.isWin !== config.isWin) {
rimraf.sync(config.binariesPath);
}
} catch (e) {
// cannot locate last-config.json, nothing to do.
}
var tasks = [
initDriver.bind(null, 'seleniumserver'),
initDriver.bind(null, 'chromedriver'),
initDriver.bind(null, 'geckodriver')
];
if (config.isWin) {
tasks.push(
initDriver.bind(null, 'iedriver'),
configureIe.bind(null)
);
}
async.series(tasks, function (err, taskResults) {
var binaries;
if (err) {
cli.err('The following error occurred:');
cli.err(err);
cli.exit(1);
return;
}
binaries = {
home: process.env.SELENIUM_BINARIES_HOME
};
for (var i = 0; i < taskResults.length; i++) {
var taskResult = taskResults[i];
if (taskResult && taskResult.driverName) {
binaries[taskResult.driverName] = taskResult.driverPath;
}
}
fs.writeFileSync(
path.resolve(__dirname, '..', 'last-config.json'),
JSON.stringify(config, null, ' ')
);
fs.writeFileSync(
path.resolve(__dirname, '..', 'binary-paths.json'),
JSON.stringify(binaries, null, ' ')
);
});