UNPKG

test-automation-pack

Version:

framework for test automation using selenium with gherkin support

81 lines (77 loc) 2.47 kB
const { log } = require("debugging-logger"); const { Builder, Capabilities } = require("selenium-webdriver"); // const firefox = require("selenium-webdriver/firefox"); const chrome = require("selenium-webdriver/chrome"); const chromedriver = require("chromedriver"); const { selenium } = require("./config"); require("geckodriver"); function initializeBrowser() { let caps, opts; const builder = new Builder(); log.info(`Launching ${selenium.browser}`); switch (selenium.browser.toLowerCase()) { case "firefox": opts = { // args: ['-private'], args: [], prefs: { "profile.content_settings.exceptions.automatic_downloads.*.setting": 1, "download.prompt_for_download": false, "download.default_directory": `${process.cwd()}/reports/downloads`, }, }; if (selenium.headless === true) { opts.args.push("-headless"); } caps = Capabilities.firefox(); caps.set("moz:firefoxOptions", opts); break; case "safari": opts = { args: ["--start-maximized", "--disable-infobars"], prefs: { "profile.content_settings.exceptions.automatic_downloads.*.setting": 1, "download.prompt_for_download": false, "download.default_directory": `${process.cwd()}/reports/downloads`, }, }; caps = Capabilities.safari(); caps.set("safariOptions", opts); break; case "ie": log.info("IE not implement yet."); break; case "chrome": default: chrome.setDefaultService( new chrome.ServiceBuilder(chromedriver.path).build() ); opts = { args: [ "incognito", "force-device-scale-factor=1", "disable-extensions", ], prefs: { "profile.content_settings.exceptions.automatic_downloads.*.setting": 1, "download.prompt_for_download": false, "download.default_directory": `${process.cwd()}/reports/downloads`, }, excludeSwitches: ["enable-automation"], }; if (selenium.headless === true) { opts.args.push("headless"); } caps = Capabilities.chrome(); caps.set("goog:chromeOptions", opts); } caps.set("pageLoadStrategy", "normal"); builder.withCapabilities(caps); if (selenium.hub !== undefined) { builder.usingServer(selenium.hub); } return builder.build(); } module.exports = { initializeBrowser, };