webdriver-manager-replacement
Version:
webdriver-manager-replacement
122 lines • 4.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const chromedriver_1 = require("../provider/chromedriver");
const geckodriver_1 = require("../provider/geckodriver");
const iedriver_1 = require("../provider/iedriver");
const selenium_server_1 = require("../provider/selenium_server");
const chromium_1 = require("../provider/chromium");
/**
* Converts an options object into an options binary object.
* @param options
*/
function addOptionsBinary(options) {
if (!options) {
return null;
}
const providerConfig = {
ignoreSSL: options.ignoreSSL,
outDir: options.outDir,
proxy: options.proxy
};
const optionsBinary = options;
if (optionsBinary.browserDrivers) {
for (const browserDriver of optionsBinary.browserDrivers) {
if (browserDriver.name === 'chromedriver') {
browserDriver.binary = new chromedriver_1.ChromeDriver(providerConfig);
}
else if (browserDriver.name === 'chromium') {
browserDriver.binary = new chromium_1.Chromium(providerConfig);
}
else if (browserDriver.name === 'geckodriver') {
const geckoProviderConfig = providerConfig;
geckoProviderConfig.oauthToken = optionsBinary.githubToken;
browserDriver.binary = new geckodriver_1.GeckoDriver(geckoProviderConfig);
}
else if (browserDriver.name === 'iedriver') {
browserDriver.binary = new iedriver_1.IEDriver(providerConfig);
}
}
}
if (optionsBinary.server) {
const seleniumProviderConfig = providerConfig;
seleniumProviderConfig.outDir = optionsBinary.outDir;
seleniumProviderConfig.port = optionsBinary.server.port;
seleniumProviderConfig.runAsDetach = optionsBinary.server.runAsDetach;
seleniumProviderConfig.runAsNode = optionsBinary.server.runAsNode;
seleniumProviderConfig.logLevel = optionsBinary.server.logLevel;
optionsBinary.server.binary = new selenium_server_1.SeleniumServer(seleniumProviderConfig);
}
return optionsBinary;
}
exports.addOptionsBinary = addOptionsBinary;
/**
* For the clean and status commands ONLY.
* Create the options with all providers.
* @param argv
*/
function convertArgs2AllOptions(argv) {
return {
browserDrivers: [
{ name: 'chromedriver' },
{ name: 'chromium' },
{ name: 'geckodriver' },
{ name: 'iedriver' }
],
server: { name: 'selenium' },
outDir: argv['out_dir']
};
}
exports.convertArgs2AllOptions = convertArgs2AllOptions;
/**
* For the update and start commands ONLY.
* Create the options with providers depending on argv's.
* @param argv
*/
function convertArgs2Options(argv) {
const options = {
browserDrivers: [],
server: null,
ignoreSSL: argv.ignore_ssl,
outDir: argv.out_dir,
proxy: argv.proxy,
githubToken: argv.github_token,
};
if (argv['chromedriver']) {
setVersions('chromedriver', argv, options.browserDrivers);
}
if (argv['chromium']) {
setVersions('chromium', argv, options.browserDrivers);
}
if (argv['geckodriver']) {
setVersions('geckodriver', argv, options.browserDrivers);
}
if (argv['iedriver']) {
setVersions('iedriver', argv, options.browserDrivers);
}
if (argv['selenium']) {
options.server = {};
options.server.name = 'selenium';
options.server.runAsNode = argv['selenium_node'];
options.server.runAsDetach = argv.detach;
options.server.version = argv['versions'] && argv['versions']['selenium'] ?
argv['versions']['selenium'] : undefined;
options.server.maxVersion = argv['max_versions']
&& argv['max_versions']['selenium'] ?
argv['versions']['selenium'] : undefined;
options.server.chromeLogs = argv.chrome_logs;
options.server.edge = argv.edge;
options.server.port = argv.seleniumPort;
options.server.logLevel = argv.seleniumLogLevel;
}
return options;
}
exports.convertArgs2Options = convertArgs2Options;
function setVersions(name, argv, browserDrivers) {
const version = argv['versions'] && argv['versions'][name] ?
argv['versions'][name] : undefined;
const maxVersion = argv['max_versions'] && argv['max_versions'][name] ?
argv['max_versions'][name] : undefined;
browserDrivers.push({ name, version, maxVersion });
return browserDrivers;
}
//# sourceMappingURL=utils.js.map