UNPKG

nodium

Version:

Pure nodejs selenium webdriver functional helpers

105 lines (82 loc) 3.46 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _seleniumWebdriver = require('selenium-webdriver'); var _local = require('./local'); var _local2 = _interopRequireDefault(_local); var _saucelabs = require('./saucelabs'); var _saucelabs2 = _interopRequireDefault(_saucelabs); var _browserstack = require('./browserstack'); var _browserstack2 = _interopRequireDefault(_browserstack); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const debug = require('debug')('nodium'); let driver; if (process.env.BROWSERSTACK) { const capabilities = {}; const browser = { name: process.env.SELENIUM_BROWSER || 'chrome', platform: process.env.BROWSERSTACK_PLATFORM || 'Windows', resolution: process.env.BROWSERSTACK_RESOLUTION || '1280x1024' }; if (process.env.BROWSERSTACK_PLATFORM_VERSION) { browser.platformVersion = process.env.BROWSERSTACK_PLATFORM_VERSION; } if (process.env.BROWSERSTACK_VERSION) { browser.version = process.env.BROWSERSTACK_VERSION; } if (process.env.BROWSERSTACK_SELENIUM_VERSION) { capabilities['browserstack.selenium_version'] = process.env.BROWSERSTACK_SELENIUM_VERSION; } const username = process.env.BROWSERSTACK_USER || process.env.BROWSERSTACK_USERNAME; const accessKey = process.env.BROWSERSTACK_ACCESS_KEY; const parentModule = module.parent || module; require('pkginfo')(parentModule, 'name'); const { exports: { name: project } } = parentModule; driver = (0, _browserstack2.default)(username, accessKey, browser, project, 'local', 'local', capabilities); debug(`Use ${browser.name.toLowerCase()} browser`); } else if (process.env.SAUCE) { const browser = { name: process.env.SELENIUM_BROWSER || 'chrome', platform: process.env.SAUCE_PLATFORM || 'Windows 10', resolution: process.env.SAUCE_RESOLUTION || '1280x1024' }; if (process.env.SAUCE_VERSION) { browser.version = process.env.SAUCE_VERSION; } else { switch (browser.name.toLowerCase()) { case _seleniumWebdriver.Browser.CHROME: browser.version = '69'; break; case _seleniumWebdriver.Browser.FIREFOX: browser.version = '62'; break; default: throw new Error(`Cannot set default version for browser ${browser.name}`); } } const username = process.env.SAUCE_USERNAME; const accessKey = process.env.SAUCE_ACCESS_KEY; const parentModule = module.parent || module; require('pkginfo')(parentModule, 'name'); const { exports: { name: projectName } } = parentModule; driver = (0, _saucelabs2.default)(username, accessKey, browser, projectName); debug(`Use ${browser.name.toLowerCase()} browser`); } else { const binaryPath = process.env.SELENIUM_BROWSER_BINARY_PATH; if (!binaryPath) { throw new Error(`You must provide a browser binary path using "SELENIUM_BROWSER_BINARY_PATH" env var.`); } const browser = process.env.SELENIUM_BROWSER || _seleniumWebdriver.Browser.FIREFOX; const options = { binaryPath, verbose: !!process.env.VERBOSE_MODE }; driver = (0, _local2.default)(browser.toLowerCase(), options); debug(`Use ${browser.toLowerCase()} browser`); } exports.default = driver;