Example usage for org.openqa.selenium.chrome ChromeOptions ChromeOptions

List of usage examples for org.openqa.selenium.chrome ChromeOptions ChromeOptions

Introduction

In this page you can find the example usage for org.openqa.selenium.chrome ChromeOptions ChromeOptions.

Prototype

public ChromeOptions() 

Source Link

Usage

From source file:br.ufmg.dcc.saotome.beholder.selenium.SeleniumController.java

License:Apache License

/**
 * This method starts the selenium remote control using the parameters
 * informed by testng.xml file/*from w w  w . ja  v  a2s . c o  m*/
 * @param parameters
 * @throws Exception
 */
@BeforeSuite(alwaysRun = true)
@Parameters(value = { "parameters" })
public static void startSelenium(String parameters) {
    parametersMap = parameterScanner(parameters);

    parametersInfo();

    String browserName = parametersMap.get("browser"), profile = parametersMap.get("profile"),
            chromeDriverBin = parametersMap.get("chromeDriverBin"),
            ieDriverBin = parametersMap.get("ieDriverBin"), chromeBin = parametersMap.get("chromeBin"),
            languages = parametersMap.get("languages");

    if (browserName == null) {
        throw new IllegalArgumentException(
                String.format(ErrorMessages.ERROR_TEMPLATE_VARIABLE_NULL, "browser"));
    }

    if (driver == null) {
        if (BrowsersList.FIREFOX.equalsString(browserName)) {
            FirefoxProfile fp = new FirefoxProfile();
            fp.setPreference("dom.max_script_run_time", 0);
            fp.setPreference("dom.max_chrome_script_run_time", 0);
            if (profile != null && !profile.isEmpty()) {
                fp.setPreference("webdriver.firefox.profile", profile);
            }
            if (languages != null && !languages.isEmpty()) {
                fp.setPreference("intl.accept_languages", languages);
            }
            driver = new WebDriverAdapter(new FirefoxDriver(fp));
        } else if (BrowsersList.CHROME.equalsString(browserName)) {

            if (chromeBin == null) {
                throw new IllegalArgumentException(
                        String.format(ErrorMessages.ERROR_TEMPLATE_VARIABLE_NULL, "chromeBin"));
            }

            // Optional, if not specified, WebDriver will search your path for chromedriver 
            // in the system environment. (OBS: To evade problems, webdriver.chrome.driver MUST have a value.
            if (System.getProperty("webdriver.chrome.driver") == null
                    || System.getProperty("webdriver.chrome.driver").isEmpty()) {
                if (chromeDriverBin == null) {
                    throw new IllegalArgumentException(
                            String.format(ErrorMessages.ERROR_TEMPLATE_VARIABLE_NULL, "chromeDriverBin"));
                }
                System.setProperty("webdriver.chrome.driver", chromeDriverBin);
            }

            ChromeOptions co = new ChromeOptions();
            // Get the chrome binary directory path from System Envionment.
            co.setBinary(new File(chromeBin));
            driver = new WebDriverAdapter(new ChromeDriver(co));
        } else if (BrowsersList.IE.equalsString(browserName)) {
            if (ieDriverBin == null) {
                throw new IllegalArgumentException(
                        String.format(ErrorMessages.ERROR_TEMPLATE_VARIABLE_NULL, "ieDriverBin"));
            }
            System.setProperty("webdriver.ie.driver", ieDriverBin);
            driver = new WebDriverAdapter(new InternetExplorerDriver());
        } else if (BrowsersList.HTML_UNIT.equalsString(browserName)) {
            driver = new HtmlUnitDriver(true);
        } else {
            throw new IllegalArgumentException(ErrorMessages.ERROR_BROWSER_INVALID);
        }
    }
    /* Sets to all driver methods the global timeout of 1 second. 
     * To tests, Timeouts must be specified on the components.
     */
    SeleniumController.driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
    SeleniumController.builder = new SeleniumBuilder(driver);
    SeleniumController.browser = new SeleniumBrowser();
    ListenerGateway.setWebDriver(driver);
    ListenerGateway.setParameters(parametersMap);
}

From source file:cat.calidos.morfeu.webapp.UITezt.java

License:Apache License

@BeforeClass
public static void setUpClass() throws Exception {

    defineSystemVariable(BROWSER_PROPERTY, DEFAULT_BROWSER);
    defineSystemVariable(DRIVER_LOCATION_PROPERTY, DEFAULT_DRIVER_LOCATION);

    appBaseURL = defineSystemVariable(URL_PROPERTY, DEFAULT_URL);

    ChromeOptions chromeOptions = new ChromeOptions();
    //chromeOptions.addArguments("--log-level=3");
    chromeOptions.addArguments("--log-path=/dev/null"); //really?
    chromeOptions.addArguments("--silent");
    driver = new ChromeDriver(chromeOptions);

}

From source file:Chrome.AddProductChrome.java

@BeforeClass
public static void setUpClass() throws Exception {

    System.setProperty("webdriver.chrome.driver",
            "D:\\Proiecte\\selenium-java-2.47.1\\selenium-2.47.1\\chromedriver_win32\\chromedriver.exe");

    ChromeOptions options = new ChromeOptions();

    options.addArguments("--start-maximized");

    driver = new ChromeDriver(options);

    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    driver.get(Constants.URLRoot);//from  w ww . j a  v  a  2 s. c  o  m
}

From source file:chromedriveryahoologin.ChromeDriverDeleteTrashEmails.java

public static void main(String[] args) {
    try {//from w w  w.  j  a v a2s.  c o m

        Integer pozSpam = 0;
        Integer pozTrash = 0;
        Integer pozHelp = 0;
        Integer pozCompose = 0;
        Integer pozNewFolder = 0;

        System.setProperty("webdriver.chrome.driver",
                "D:\\Proiecte\\selenium-java-2.47.1\\selenium-2.47.1\\chromedriver_win32\\chromedriver.exe");
        System.setProperty("webdriver.chrome.logfile",
                "D:\\prjAutJava\\YahooLogin\\ChromeDriverDeleteSpam.log");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("test-type");
        options.addArguments("--start-maximized");
        options.addArguments("--disable-web-security");
        options.addArguments("--no-proxy-server");
        options.addArguments("--disable-extensions");
        options.addArguments("--disable-notifications");
        options.addArguments("--disable-popup-blocking");
        options.addArguments("--disable-plug-in");
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("credentials_enable_service", false);
        prefs.put("profile.password_manager_enabled", false);

        options.setExperimentalOption("prefs", prefs);

        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability(ChromeOptions.CAPABILITY, options);
        capabilities.setCapability(CapabilityType.SUPPORTS_APPLICATION_CACHE, true);
        capabilities.setCapability(CapabilityType.SUPPORTS_FINDING_BY_CSS, true);
        capabilities.setCapability(CapabilityType.SUPPORTS_LOCATION_CONTEXT, true);
        capabilities.setCapability(CapabilityType.SUPPORTS_ALERTS, true);
        capabilities.setCapability(CapabilityType.PLATFORM, "WIN10");

        driver = new ChromeDriver(capabilities);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get("https://mail.yahoo.com");
        driver.manage().window().maximize();
        WebElement usernameElem = driver.findElement(By.id("login-username"));
        usernameElem.sendKeys("andadeacu@yahoo.com");

        WebElement Next = driver.findElement(By.name("signin"));
        Next.click();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        WebElement passwordElem = driver.findElement(By.xpath("//input[@id='login-passwd']"));
        boolean selected = passwordElem.isSelected();

        CharSequence password = "";
        passwordElem.sendKeys(password);

        WebElement login = driver.findElement(By.id("login-signin"));

        login.click();
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        driver.switchTo().activeElement();

        WebElement tooltipElem = driver.findElement(By.xpath("//div[@class='Pos(r) M(0) TooltipContent']"));

        List<WebElement> childs = tooltipElem.findElements(By.xpath("//ul/li"));

        for (int j = 0; j < childs.size(); j++) {

            WebElement spamElem = childs.get(j);
            /*
            * System.out.println("ancorele " + j + " " + " tag " +
            * childs.get(j).getTagName() + " " + childs.get(j).getText() +
            * " " + childs.get(j).getAttribute("innerHTML"));
             */
            if (spamElem.getText().startsWith(("Spam"))) {

                pozSpam = j;

            }
            if (spamElem.getText().startsWith(("Help"))) {

                pozHelp = j;

            }
            if (spamElem.getText().startsWith(("Compose"))) {

                pozCompose = j;

            }
            if (spamElem.getText().startsWith(("New"))) {

                pozNewFolder = j;

            }

            if (spamElem.getText().startsWith(("Trash"))) {
                System.out.println(j + " Trash is " + spamElem.getTagName() + " " + spamElem.getText());
                pozTrash = j;
                break;
            }

        }
        System.out.println(pozTrash);

        WebElement trashElem = childs.get(pozTrash);

        /*
        * System.out.println("trashElem " + trashElem.getTagName() +
        * " text " + trashElem.getText() + " class_atribute " +
        * trashElem.getAttribute("class") + " data_action " +
        * trashElem.getAttribute("data_action"));
         */
        WebElement trashFolderEmpty = trashElem.findElement(
                By.xpath("//a[@class='x-gap btn btn-trash']/span/span[@class='btn icon  icon-delete']"));

        /*
        * System.out.println("spamEmptyFolder " +
        * spamFolderEmpty.getTagName() + " text " +
        * spamFolderEmpty.getText() + " location " +
        * spamFolderEmpty.isEnabled());
         */
        trashFolderEmpty.click();

        int timeOut = 5;

        WebDriverWait wait = new WebDriverWait(driver, timeOut);

        driver.switchTo().alert();

        /* for Chrome is not working 
        WebElement modalPopUp = driver.findElement(By
            .className("modal-hd yui3-widget-hd"));
                
        */

        WebElement btnDeleteSpamEmails = driver.findElement(By.className("btn left right default"));

        /*
        * <button id="okayModalOverlay" class="btn left right default"
        * title="OK" role="button" data-action="ok">OK</button>
         */
        btnDeleteSpamEmails.click();

        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        driver.switchTo().activeElement();

        // verify msg after you delete spam emails
        System.out.println(driver.getCurrentUrl());

        driver.quit();
    } catch (Exception ex) {

        ex.printStackTrace();
        driver.quit();
    }

}

From source file:com.addthis.hermes.framework.PerformanceTest.java

License:Apache License

private PerformanceTest(Navigator navigator, Transformer transformer, Path outputPath, ChromeOptions options,
        int iterations, int pageLoadWait, boolean resetBetweenIterations, boolean useIncognitoBrowser) {
    checkNotNull(navigator);//from w ww .j  av a 2  s  .c  o m
    checkNotNull(transformer);
    checkArgument(iterations > 0);
    checkArgument(pageLoadWait >= 0);
    checkNotNull(outputPath);
    if (useIncognitoBrowser) {
        if (options == null) {
            options = new ChromeOptions();
        }
        options.addArguments("--incognito");
    }
    this.manager = new Manager(transformer);
    this.navigator = navigator;
    this.outputPath = outputPath;
    this.options = options;
    this.iterations = iterations;
    this.pageLoadWait = pageLoadWait;
    this.resetBetweenIterations = resetBetweenIterations;
}

From source file:com.ariatemplates.seleniumjavarobot.DebuggableChrome.java

License:Apache License

public DebuggableChrome() {
    ChromeOptions options = new ChromeOptions();
    String debugExtension = System.getProperty("seleniumjavarobot.chrome.debugextension");
    if (debugExtension == null || !new File(debugExtension).isDirectory()) {
        throw new RuntimeException(
                "Please set the seleniumjavarobot.chrome.debugextension system property to point to the path of the chrome extension.");
    }//w  w  w.  j ava 2 s .  c om
    options.addArguments("load-extension=" + debugExtension);
    options.addArguments("start-maximized");
    webdriver = new ChromeDriver(options);
    // waits for the extension page to be loaded:
    (new WebDriverWait(webdriver, 10))
            .until(ExpectedConditions.presenceOfElementLocated(By.id("selenium-java-robot")));
    webdriver.manage().timeouts().setScriptTimeout(1, TimeUnit.DAYS);
}

From source file:com.axatrikx.webdriver.ChromeLoader.java

License:Apache License

@Override
public WebDriver getDriver() {
    String resource = "chromedriver.exe";
    if (Utils.getOS().equals("Unix")) {
        resource = "chromedriver";
    }/*from  ww  w.  j  a  v a  2  s .  c o  m*/
    System.setProperty("webdriver.chrome.driver", Utils.getResource(resource).getAbsolutePath());
    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.addArguments("disable-popup-blocking");
    Map<String, Object> prefs = new HashMap<String, Object>();
    prefs.put("download.default_directory", downloadDir);
    prefs.put("profile.default_content_settings.popups", 0);

    // set chrome custom binary
    if (!chromeBinaryPath.isEmpty()) {
        prefs.put("binary", chromeBinaryPath);
    }

    chromeOptions.setExperimentalOption("prefs", prefs);

    if (useProxy) {
        String proxyURL = proxyHost + ":" + proxyPort;
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(proxyURL).setFtpProxy(proxyURL).setSslProxy(proxyURL);
        capabilities.setCapability(CapabilityType.PROXY, proxy);
    }

    if (!chromeProfilePath.isEmpty()) {
        chromeOptions.addArguments("user-data-dir=" + chromeProfilePath);
    }

    capabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);
    return new ChromeDriver(capabilities);
}

From source file:com.ceiwc.compugain.setup.TestBase.java

public DesiredCapabilities chromeProfileSetUp() {
    System.setProperty("webdriver.chrome.driver", getFilePath(CHROMEPATH));
    String downloadFilepath = getFilePath(DOWNLOADSPATH);
    HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
    chromePrefs.put("profile.default_content_settings.popups", 0);
    chromePrefs.put("download.default_directory", downloadFilepath);
    ChromeOptions options = new ChromeOptions();
    HashMap<String, Object> chromeOptionsMap = new HashMap<String, Object>();
    options.setExperimentalOption("prefs", chromePrefs);
    options.addArguments("--test-type");
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    cap.setCapability(ChromeOptions.CAPABILITY, chromeOptionsMap);
    cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    cap.setCapability(ChromeOptions.CAPABILITY, options);
    options.addArguments("--always-authorize-plugins");
    options.addArguments("--ignore-certificate-errors");
    //   logger.info("The Chrome Profile is setup");
    return cap;// w ww .  ja v a 2s. co m
}

From source file:com.chtr.tmoauto.webui.CommonFunctions.java

License:Open Source License

/**
 * This method build a webDriver based on the passed in browser request
 *
 * @param browser//from  www .j a v a  2s  .  c o  m
 * @return WebDriver
 * @throws MalformedURLException
 */
private static WebDriver buildWebDriver(String browserName) {
    DesiredCapabilities capability = null;
    BrowserType browserType = BrowserType.getBrowserTypeFromString(browserName);
    switch (browserType) {
    case MARIONETTE:
        FirefoxProfile ffProfile = null;
        ffProfile = new FirefoxProfile();
        ffProfile.setAcceptUntrustedCertificates(true);
        ffProfile.setAssumeUntrustedCertificateIssuer(false);
        DesiredCapabilities cap = DesiredCapabilities.firefox();
        cap.setCapability("marionette", true);
        cap.setCapability("firefox_profile", ffProfile);
        cap.setCapability("handlesAlerts", true);
        sysEnv = System.getenv("webdriver.firefox.marionette");
        if (sysEnv == null) {
            sysEnv = findFileName("C:/apps/selenium", "geckodriver.exe", FileSearchType.File);
            if (sysEnv == null) {
                log.info(
                        "Please set the webdriver.firefox.marionette in system environment variables and restart the PC OR copy all your webdrivers under 'C:/selenium' location");
                throw new RuntimeException("Failed to instantiate a WebDriver instance for " + browserName);
            } else {
                System.setProperty("webdriver.firefox.marionette", sysEnv);
            }
        }
        return new MarionetteDriver(capability);
    case FIREFOX_DRIVER:
        capability = DesiredCapabilities.firefox();
        FirefoxProfile firefoxProfile = new FirefoxProfile();
        firefoxProfile.setAcceptUntrustedCertificates(true);
        firefoxProfile.setEnableNativeEvents(true);
        firefoxProfile.setAssumeUntrustedCertificateIssuer(true);
        capability.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
        return new FirefoxDriver(capability);
    case CHROME_DRIVER:
        sysEnv = System.getenv("webdriver.chrome.driver");
        if (sysEnv == null) {
            sysEnv = findFileName("C:/apps/selenium", "chromedriver.exe", FileSearchType.File);
            if (sysEnv == null) {
                log.info(
                        "Please set the webdriver.chrome.driver in system environment variables and restart the PC OR copy all your webdrivers under 'C:/selenium' location");
                throw new RuntimeException("Failed to instantiate a WebDriver instance for " + browserName);
            } else {
                System.setProperty("webdriver.chrome.driver", sysEnv);
            }
        }
        capability = DesiredCapabilities.chrome();
        ChromeOptions options = new ChromeOptions();
        options.addArguments(new String[] { "--allow-running-insecure-content" });
        options.addArguments(new String[] { "--ignore-certificate-errors" });
        options.addArguments(new String[] { "--enable-npapi" });
        options.addArguments(new String[] { "--disable-extensions" });
        options.addArguments(new String[] { "--start-maximized" });
        capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        capability.setCapability(ChromeOptions.CAPABILITY, options);
        return new ChromeDriver(capability);
    case INTERNET_EXPLORER:
        sysEnv = System.getenv("webdriver.ie.driver");
        if (sysEnv == null) {
            sysEnv = findFileName("C:/apps/selenium", "IEDriverServer.exe", FileSearchType.File);
            if (sysEnv == null) {
                log.info(
                        "Please set the webdriver.ie.driver in system environment variables and restart the PC");
                throw new RuntimeException("Failed to instantiate a WebDriver instance for " + browserName);
            } else {
                System.setProperty("webdriver.ie.driver", sysEnv);
            }
        }
        capability = DesiredCapabilities.internetExplorer();
        capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
        capability.setCapability("ignoreProtectedModeSettings", true);
        capability.setCapability("acceptSslCerts", true);
        capability.setCapability("ignoreZoomSetting", true);
        capability.setCapability("nativeEvents", true);
        capability.setCapability("ie.ensureCleanSession", true);
        return new InternetExplorerDriver(capability);
    case SAFARI:
        capability = DesiredCapabilities.safari();
        capability.setCapability("acceptSslCerts", true);
        capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        capability.setCapability("ensureCleanSession", true);
        capability.setJavascriptEnabled(true);
        return new SafariDriver(capability);
    /*        case OPERA_DRIVER:
    capability = DesiredCapabilities.opera();
    capability.setCapability("opera.host", "127.0.0.1");
    return new OperaDriver();
     */
    case EDGE:
        capability = DesiredCapabilities.edge();
        EdgeOptions option = new EdgeOptions();
        capability.setCapability("edgeOptions", option);
        return new EdgeDriver(capability);
    default:
        log.info(
                "Currenty support is there for Chrome, Firefox, Firefox Marionette, Internet Explorer, Edge, Safari & Opera. Support is not there for "
                        + browserName);
        capability = DesiredCapabilities.firefox();
        FirefoxProfile firefoxProf = new FirefoxProfile();
        firefoxProf.setAcceptUntrustedCertificates(true);
        firefoxProf.setEnableNativeEvents(true);
        firefoxProf.setAssumeUntrustedCertificateIssuer(true);
        capability.setCapability(FirefoxDriver.PROFILE, firefoxProf);
        return new FirefoxDriver(capability);
    }
}

From source file:com.chtr.tmoauto.webui.CommonFunctions.java

License:Open Source License

/**
 * This method build a RemoteWebDriver based on the passed in browser request
 *
 * @param browser/*  w w  w .  j a va  2  s.  co  m*/
 * @return RemoteWebDriver
 *
 */
private static RemoteWebDriver buildRemoteWebDriver(String browserName) {
    DesiredCapabilities capability = null;
    BrowserType browserType = BrowserType.getBrowserTypeFromString(browserName);
    switch (browserType) {
    case MARIONETTE:
        FirefoxProfile ffProfile = null;
        ffProfile = new FirefoxProfile();
        ffProfile.setAcceptUntrustedCertificates(true);
        ffProfile.setAssumeUntrustedCertificateIssuer(false);
        DesiredCapabilities cap = DesiredCapabilities.firefox();
        cap.setCapability("marionette", true);
        cap.setCapability("firefox_profile", ffProfile);
        cap.setCapability("handlesAlerts", true);
        sysEnv = System.getenv("webdriver.firefox.marionette");
        if (sysEnv == null) {
            sysEnv = findFileName("C:/apps/selenium", "geckodriver.exe", FileSearchType.File);
            if (sysEnv == null) {
                log.info(
                        "Please set the webdriver.firefox.marionette in system environment variables and restart the PC OR copy all your webdrivers under 'C:/selenium' location");
                throw new RuntimeException("Failed to instantiate a WebDriver instance for " + browserName);
            } else {
                System.setProperty("webdriver.firefox.marionette", sysEnv);
            }
        }
        return new MarionetteDriver(capability);
    case FIREFOX_DRIVER:
        capability = DesiredCapabilities.firefox();
        FirefoxProfile firefoxProfile = new FirefoxProfile();
        firefoxProfile.setAcceptUntrustedCertificates(true);
        firefoxProfile.setEnableNativeEvents(true);
        capability.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
        capability.setPlatform(capability.getPlatform());
        capability.setVersion(capability.getVersion());
        return new FirefoxDriver(capability);
    case CHROME_DRIVER:
        sysEnv = System.getenv("webdriver.chrome.driver");
        if (sysEnv == null) {
            sysEnv = findFileName("C:/apps/selenium", "chromedriver.exe", FileSearchType.File);
            if (sysEnv == null) {
                log.info(
                        "Please set the webdriver.chrome.driver in system environment variables and restart the PC OR copy all your webdrivers under 'C:/selenium' location");
                throw new RuntimeException("Failed to instantiate a WebDriver instance for " + browserName);
            } else {
                System.setProperty("webdriver.chrome.driver", sysEnv);
            }
        }
        capability = DesiredCapabilities.chrome();
        ChromeOptions options = new ChromeOptions();
        options.addArguments(new String[] { "--allow-running-insecure-content" });
        options.addArguments(new String[] { "--ignore-certificate-errors" });
        options.addArguments(new String[] { "--enable-npapi" });
        options.addArguments(new String[] { "--disable-extensions" });
        options.addArguments(new String[] { "--start-maximized" });
        capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        capability.setCapability(ChromeOptions.CAPABILITY, options);
        capability.setPlatform(capability.getPlatform());
        capability.setVersion(capability.getVersion());
        return new ChromeDriver(capability);
    case INTERNET_EXPLORER:
        sysEnv = System.getenv("webdriver.ie.driver");
        if (sysEnv == null) {
            sysEnv = findFileName("C:/apps/selenium", "IEDriverServer.exe", FileSearchType.File);
            if (sysEnv == null) {
                log.info(
                        "Please set the webdriver.ie.driver in system environment variables and restart the PC");
                throw new RuntimeException("Failed to instantiate a WebDriver instance for " + browserName);
            } else {
                System.setProperty("webdriver.ie.driver", sysEnv);
            }
        }
        capability = DesiredCapabilities.internetExplorer();
        capability.setCapability("ignoreProtectedModeSettings", true);
        String browserVersion = capability.getVersion();
        if (browserVersion != null && browserVersion.equals("10")) {
            capability.setPlatform(Platform.WINDOWS);
            capability.setVersion(browserVersion);
        } else if (browserVersion != null && browserVersion.equals("11")) {
            capability.setPlatform(Platform.WIN8_1);
            capability.setVersion(browserVersion);
        }
        capability.setBrowserName("internet explorer");
        capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        return new InternetExplorerDriver(capability);
    case SAFARI:
        capability = DesiredCapabilities.safari();
        capability.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        capability.setCapability("ensureCleanSession", true);
        capability.setPlatform(capability.getPlatform());
        capability.setVersion(null);
        return new SafariDriver(capability);
    /*         case OPERA_DRIVER:
    capability = DesiredCapabilities.opera();
    capability.setCapability("opera.profile", "/test");
    return new OperaDriver();
    */
    case EDGE:
        capability = DesiredCapabilities.edge();
        EdgeOptions option = new EdgeOptions();
        capability.setCapability("edgeOptions", option);
        return new EdgeDriver(capability);
    default:
        log.info(
                "Currenty support is there for Chrome, Firefox, Firefox Marionette, Internet Explorer, Edge, Safari & Opera. Support is not there for "
                        + browserName);
        capability = DesiredCapabilities.firefox();
        firefoxProfile = new FirefoxProfile();
        firefoxProfile.setAcceptUntrustedCertificates(true);
        firefoxProfile.setEnableNativeEvents(true);
        capability.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
        capability.setPlatform(capability.getPlatform());
        capability.setVersion(capability.getVersion());
        return new FirefoxDriver(capability);
    }
}