Example usage for org.openqa.selenium.firefox FirefoxOptions setBinary

List of usage examples for org.openqa.selenium.firefox FirefoxOptions setBinary

Introduction

In this page you can find the example usage for org.openqa.selenium.firefox FirefoxOptions setBinary.

Prototype

public FirefoxOptions setBinary(String path) 

Source Link

Usage

From source file:com.gargoylesoftware.htmlunit.WebDriverTestCase.java

License:Apache License

/**
 * Builds a new WebDriver instance./*from   w w  w. j a  v a 2s .com*/
 * @return the instance
 * @throws IOException in case of exception
 */
protected WebDriver buildWebDriver() throws IOException {
    if (useRealBrowser()) {
        if (getBrowserVersion().isIE()) {
            if (IE_BIN_ != null) {
                System.setProperty("webdriver.ie.driver", IE_BIN_);
            }
            return new InternetExplorerDriver();
        }

        if (BrowserVersion.CHROME == getBrowserVersion()) {
            if (CHROME_SERVICE_ == null) {
                final ChromeDriverService.Builder builder = new ChromeDriverService.Builder();
                if (CHROME_BIN_ != null) {
                    builder.usingDriverExecutable(new File(CHROME_BIN_));
                }
                CHROME_SERVICE_ = builder.usingAnyFreePort().build();

                CHROME_SERVICE_.start();
            }
            return new ChromeDriver(CHROME_SERVICE_);
        }

        if (BrowserVersion.EDGE == getBrowserVersion()) {
            if (EDGE_BIN_ != null) {
                System.setProperty("webdriver.edge.driver", EDGE_BIN_);
            }
            return new EdgeDriver();
        }

        if (BrowserVersion.FIREFOX_45 == getBrowserVersion()) {
            // disable the new marionette interface because it requires ff47 or more
            System.setProperty("webdriver.firefox.marionette", "false");

            if (FF45_BIN_ != null) {
                final FirefoxOptions options = new FirefoxOptions();
                options.setBinary(FF45_BIN_);
                return new FirefoxDriver(options);
            }
            return new FirefoxDriver();
        }

        if (BrowserVersion.FIREFOX_52 == getBrowserVersion()) {
            if (FF52_BIN_ != null) {
                final FirefoxOptions options = new FirefoxOptions();
                options.setBinary(FF52_BIN_);
                return new FirefoxDriver(options);
            }
            return new FirefoxDriver();
        }

        throw new RuntimeException("Unexpected BrowserVersion: " + getBrowserVersion());
    }
    if (webDriver_ == null) {
        final DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setBrowserName(BrowserType.HTMLUNIT);
        capabilities.setVersion(getBrowserName(getBrowserVersion()));
        webDriver_ = new HtmlUnitDriver(capabilities);
    }
    return webDriver_;
}

From source file:javax.portlet.tck.driver.TCKSimpleTestDriver.java

License:Apache License

/**
 * @throws java.lang.Exception//from   w w  w . j  av  a  2 s . c  om
 */
@BeforeClass
public static void setUpBeforeClass() throws Exception {

    loginUrl = System.getProperty("test.server.login.url");
    host = System.getProperty("test.server.host");
    port = System.getProperty("test.server.port");
    username = System.getProperty("test.server.username");
    usernameId = System.getProperty("test.server.username.id");
    password = System.getProperty("test.server.password");
    passwordId = System.getProperty("test.server.password.id");
    browser = System.getProperty("test.browser");
    testContextBase = System.getProperty("test.context.base");
    String str = System.getProperty("test.url.strategy");
    useGeneratedUrl = str.equalsIgnoreCase("generateURLs");
    str = System.getProperty("test.debug");
    debug = str.equalsIgnoreCase("true");
    str = System.getProperty("test.timeout");
    dryrun = new Boolean(System.getProperty("test.dryrun"));
    timeout = ((str != null) && str.matches("\\d+")) ? Integer.parseInt(str) : 3;
    String wd = System.getProperty("test.browser.webDriver");
    String binary = System.getProperty("test.browser.binary");
    boolean browserDefaultHeadless = browser.equalsIgnoreCase("chrome") || browser.equalsIgnoreCase("firefox")
            || browser.equalsIgnoreCase("htmlunit") || browser.equalsIgnoreCase("phantomjs");
    String headlessProperty = System.getProperty("test.browser.headless");
    boolean headless = (((headlessProperty == null) || (headlessProperty.length() == 0))
            && browserDefaultHeadless);

    System.out.println("before class.");
    System.out.println("   Debug        =" + debug);
    System.out.println("   Dryrun       =" + dryrun);
    System.out.println("   Timeout      =" + timeout);
    System.out.println("   Login URL    =" + loginUrl);
    System.out.println("   Host         =" + host);
    System.out.println("   Port         =" + port);
    System.out.println("   Context      =" + testContextBase);
    System.out.println("   Generate URL =" + useGeneratedUrl);
    System.out.println("   Username     =" + username);
    System.out.println("   UsernameId   =" + usernameId);
    System.out.println("   Password     =" + password);
    System.out.println("   PasswordId   =" + passwordId);
    System.out.println("   Browser      =" + browser);
    System.out.println("   Driver       =" + wd);
    System.out.println("   binary       =" + binary);
    System.out.println("   headless     =" + headless);

    if (browser.equalsIgnoreCase("firefox")) {

        System.setProperty("webdriver.gecko.driver", wd);
        FirefoxOptions options = new FirefoxOptions();
        options.setLegacy(true);
        options.setAcceptInsecureCerts(true);

        if ((binary != null) && (binary.length() != 0)) {
            options.setBinary(binary);
        }

        if (headless) {
            options.setHeadless(true);
        }

        driver = new FirefoxDriver(options);

    } else if (browser.equalsIgnoreCase("internetExplorer")) {
        System.setProperty("webdriver.ie.driver", wd);
        driver = new InternetExplorerDriver();
    } else if (browser.equalsIgnoreCase("chrome")) {

        System.setProperty("webdriver.chrome.driver", wd);
        ChromeOptions options = new ChromeOptions();

        if ((binary != null) && (binary.length() > 0)) {
            options.setBinary(binary);
        }

        if (headless) {
            options.addArguments("--headless");
        }

        options.addArguments("--disable-infobars");
        options.setAcceptInsecureCerts(true);

        driver = new ChromeDriver(options);

    } else if (browser.equalsIgnoreCase("phantomjs")) {
        DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
        capabilities.setJavascriptEnabled(true);
        capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, binary);
        driver = new PhantomJSDriver(capabilities);
    } else if (browser.equalsIgnoreCase("htmlUnit")) {
        driver = new HtmlUnitDriver(true);
    } else if (browser.equalsIgnoreCase("safari")) {
        driver = new SafariDriver();
    } else {
        throw new Exception("Unsupported browser: " + browser);
    }

    if (!dryrun) {
        login();
    }

}

From source file:org.apache.portals.pluto.test.utilities.SimpleTestDriver.java

License:Apache License

/**
 * @throws java.lang.Exception/*from   ww w  . j a va2 s  . co  m*/
 */
@BeforeClass
public static void setUpBeforeClass() throws Exception {

    if (driver == null) {
        loginUrl = System.getProperty("test.server.login.url");
        host = System.getProperty("test.server.host");
        port = System.getProperty("test.server.port");
        username = System.getProperty("test.server.username");
        usernameId = System.getProperty("test.server.username.id");
        password = System.getProperty("test.server.password");
        passwordId = System.getProperty("test.server.password.id");
        browser = System.getProperty("test.browser");
        testContextBase = System.getProperty("test.context.base");
        StringBuilder sb = new StringBuilder();
        sb.append("http://");
        sb.append(host);
        if (port != null && !port.isEmpty()) {
            sb.append(":");
            sb.append(port);
        }
        sb.append("/");
        sb.append(testContextBase);
        baseUrl = sb.toString();
        String str = System.getProperty("test.url.strategy");
        useGeneratedUrl = str.equalsIgnoreCase("generateURLs");
        str = System.getProperty("test.debug");
        debug = str.equalsIgnoreCase("true");
        str = System.getProperty("test.timeout");
        dryrun = Boolean.valueOf(System.getProperty("test.dryrun"));
        timeout = ((str != null) && str.matches("\\d+")) ? Integer.parseInt(str) : 3;
        String wd = System.getProperty("test.browser.webDriver");
        String binary = System.getProperty("test.browser.binary");
        String headlessProperty = System.getProperty("test.browser.headless");
        boolean headless = (((headlessProperty == null) || (headlessProperty.length() == 0)
                || Boolean.valueOf(headlessProperty)));
        String maximizedProperty = System.getProperty("test.browser.maximized");
        boolean maximized = Boolean.valueOf(maximizedProperty);

        System.out.println("before class.");
        System.out.println("   Debug        =" + debug);
        System.out.println("   Dryrun       =" + dryrun);
        System.out.println("   Timeout      =" + timeout);
        System.out.println("   Login URL    =" + loginUrl);
        System.out.println("   Host         =" + host);
        System.out.println("   Port         =" + port);
        System.out.println("   Context      =" + testContextBase);
        System.out.println("   Generate URL =" + useGeneratedUrl);
        System.out.println("   Username     =" + username);
        System.out.println("   UsernameId   =" + usernameId);
        System.out.println("   Password     =" + password);
        System.out.println("   PasswordId   =" + passwordId);
        System.out.println("   Browser      =" + browser);
        System.out.println("   Driver       =" + wd);
        System.out.println("   binary       =" + binary);
        System.out.println("   headless     =" + headless);
        System.out.println("   maximized    =" + maximized);

        if (browser.equalsIgnoreCase("firefox")) {

            System.setProperty("webdriver.gecko.driver", wd);
            FirefoxOptions options = new FirefoxOptions();
            options.setLegacy(true);
            options.setAcceptInsecureCerts(true);

            if ((binary != null) && (binary.length() != 0)) {
                options.setBinary(binary);
            }

            if (headless) {
                options.setHeadless(true);
            }

            driver = new FirefoxDriver(options);

        } else if (browser.equalsIgnoreCase("internetExplorer")) {
            System.setProperty("webdriver.ie.driver", wd);
            driver = new InternetExplorerDriver();
        } else if (browser.equalsIgnoreCase("chrome")) {

            System.setProperty("webdriver.chrome.driver", wd);
            ChromeOptions options = new ChromeOptions();

            if ((binary != null) && (binary.length() > 0)) {
                options.setBinary(binary);
            }

            if (headless) {
                options.addArguments("--headless");
            }

            options.addArguments("--disable-infobars");
            options.setAcceptInsecureCerts(true);

            if (maximized) {
                // The webDriver.manage().window().maximize() feature does not work correctly in headless mode, so set the
                // window size to 1920x1200 (resolution of a 15.4 inch screen).
                options.addArguments("--window-size=1920,1200");
            }

            driver = new ChromeDriver(options);

        } else if (browser.equalsIgnoreCase("phantomjs")) {
            DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
            capabilities.setJavascriptEnabled(true);
            capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, binary);
            driver = new PhantomJSDriver(capabilities);
        } else if (browser.equalsIgnoreCase("htmlUnit")) {
            LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log",
                    "org.apache.commons.logging.impl.NoOpLog");
            Logger.getLogger("com.gargoylesoftware").setLevel(Level.SEVERE);
            Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.SEVERE);
            driver = new HtmlUnitDriver() {
                @Override
                protected WebClient getWebClient() {
                    WebClient webClient = super.getWebClient();
                    WebClientOptions options = webClient.getOptions();
                    options.setThrowExceptionOnFailingStatusCode(false);
                    options.setThrowExceptionOnScriptError(false);
                    options.setPrintContentOnFailingStatusCode(false);
                    webClient.setCssErrorHandler(new SilentCssErrorHandler());
                    return webClient;
                }
            };
        } else if (browser.equalsIgnoreCase("safari")) {
            driver = new SafariDriver();
        } else {
            throw new Exception("Unsupported browser: " + browser);
        }

        Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
            @Override
            public void run() {
                driver.quit();
            }
        }));

        if (maximized) {
            driver.manage().window().maximize();
        }

        if (!dryrun) {
            login();
        }
    }
}

From source file:org.apache.zeppelin.WebDriverManager.java

License:Apache License

public static WebDriver getWebDriver() {
    WebDriver driver = null;//  w  w w  .j a v  a2 s .  c o  m

    if (driver == null) {
        try {
            FirefoxBinary ffox = new FirefoxBinary();
            if ("true".equals(System.getenv("TRAVIS"))) {
                ffox.setEnvironmentProperty("DISPLAY", ":99"); // xvfb is supposed to
                // run with DISPLAY 99
            }
            int firefoxVersion = WebDriverManager.getFirefoxVersion();
            LOG.info("Firefox version " + firefoxVersion + " detected");

            downLoadsDir = FileUtils.getTempDirectory().toString();

            String tempPath = downLoadsDir + "/firefox/";

            downloadGeekoDriver(firefoxVersion, tempPath);

            FirefoxProfile profile = new FirefoxProfile();
            profile.setPreference("browser.download.folderList", 2);
            profile.setPreference("browser.download.dir", downLoadsDir);
            profile.setPreference("browser.helperApps.alwaysAsk.force", false);
            profile.setPreference("browser.download.manager.showWhenStarting", false);
            profile.setPreference("browser.download.manager.showAlertOnComplete", false);
            profile.setPreference("browser.download.manager.closeWhenDone", true);
            profile.setPreference("app.update.auto", false);
            profile.setPreference("app.update.enabled", false);
            profile.setPreference("dom.max_script_run_time", 0);
            profile.setPreference("dom.max_chrome_script_run_time", 0);
            profile.setPreference("browser.helperApps.neverAsk.saveToDisk",
                    "application/x-ustar,application/octet-stream,application/zip,text/csv,text/plain");
            profile.setPreference("network.proxy.type", 0);

            System.setProperty(GeckoDriverService.GECKO_DRIVER_EXE_PROPERTY, tempPath + "geckodriver");
            System.setProperty(SystemProperty.DRIVER_USE_MARIONETTE, "false");

            FirefoxOptions firefoxOptions = new FirefoxOptions();
            firefoxOptions.setBinary(ffox);
            firefoxOptions.setProfile(profile);
            driver = new FirefoxDriver(firefoxOptions);
        } catch (Exception e) {
            LOG.error("Exception in WebDriverManager while FireFox Driver ", e);
        }
    }

    if (driver == null) {
        try {
            driver = new ChromeDriver();
        } catch (Exception e) {
            LOG.error("Exception in WebDriverManager while ChromeDriver ", e);
        }
    }

    if (driver == null) {
        try {
            driver = new SafariDriver();
        } catch (Exception e) {
            LOG.error("Exception in WebDriverManager while SafariDriver ", e);
        }
    }

    String url;
    if (System.getenv("url") != null) {
        url = System.getenv("url");
    } else {
        url = "http://localhost:8080";
    }

    long start = System.currentTimeMillis();
    boolean loaded = false;
    driver.manage().timeouts().implicitlyWait(AbstractZeppelinIT.MAX_IMPLICIT_WAIT, TimeUnit.SECONDS);
    driver.get(url);

    while (System.currentTimeMillis() - start < 60 * 1000) {
        // wait for page load
        try {
            (new WebDriverWait(driver, 30)).until(new ExpectedCondition<Boolean>() {
                @Override
                public Boolean apply(WebDriver d) {
                    return d.findElement(By.xpath("//i[@uib-tooltip='WebSocket Connected']")).isDisplayed();
                }
            });
            loaded = true;
            break;
        } catch (TimeoutException e) {
            LOG.info("Exception in WebDriverManager while WebDriverWait ", e);
            driver.navigate().to(url);
        }
    }

    if (loaded == false) {
        fail();
    }

    driver.manage().window().maximize();
    return driver;
}

From source file:org.testeditor.fixture.web.WebDriverFixture.java

License:Open Source License

/**
 * starts Firefox Portable. This works for Versions < 47.0. preferably Firefox
 * ESR 45.4.0/*w ww. j  ava 2 s  .  co  m*/
 * 
 * @param browserPath
 * @return {@code WebDriver}
 */
@FixtureMethod
public WebDriver startFireFoxPortable(String browserPath) throws FixtureException {
    logger.debug("Starting Firefox Portable on path : {} ...", browserPath);
    setupDrivermanager(FirefoxDriverManager.getInstance(DriverManagerType.FIREFOX));
    logger.trace("WebDriverManager setup executed!");
    FirefoxBinary binary = new FirefoxBinary(new File(browserPath));
    FirefoxOptions options = new FirefoxOptions();
    options.setBinary(binary);
    FirefoxDriver firefoxdriver = new FirefoxDriver(options);
    driver = firefoxdriver;
    logger.trace("Firefox portable setup executed!");
    logBrowserVersion(options, firefoxdriver);
    return driver;
}