UNPKG

webdriver-manager-replacement

Version:
122 lines 4.65 kB
"use strict"; 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