Example usage for org.openqa.selenium.safari SafariDriver SafariDriver

List of usage examples for org.openqa.selenium.safari SafariDriver SafariDriver

Introduction

In this page you can find the example usage for org.openqa.selenium.safari SafariDriver SafariDriver.

Prototype

public SafariDriver(SafariDriverService safariService) 

Source Link

Document

Initializes a new SafariDriver backed by the specified SafariDriverService .

Usage

From source file:com.monstrenyatko.desert.util.WebDriverFactory.java

License:MIT License

private static WebDriver createLocalDriver(Capabilities capabilities) {
    String browserType = capabilities.getBrowserName();
    if (browserType.equals(BrowserType.FIREFOX))
        return new FirefoxDriver(capabilities);
    if (browserType.equals(BrowserType.IE))
        return new InternetExplorerDriver(capabilities);
    if (browserType.equals(BrowserType.CHROME))
        return new ChromeDriver(capabilities);
    if (browserType.equals(BrowserType.SAFARI))
        return new SafariDriver(capabilities);

    throw new Error("Unsupported browser type: " + browserType);
}

From source file:com.redhat.darcy.webdriver.SafariBrowserFactory.java

License:Open Source License

@Override
public Browser newBrowser() {
    SafariDriver driver;/* w  ww.j  a  v  a  2  s . c o m*/
    if (capabilities != null) {
        driver = new SafariDriver(capabilities);
    } else if (safariOptions != null) {
        driver = new SafariDriver(safariOptions);
    } else {
        driver = new SafariDriver();
    }
    return makeBrowser(driver, elementImpls);
}

From source file:com.testmax.handler.SeleniumBaseHandler.java

License:CDDL license

@Before
public synchronized void setUp() throws Exception {
    //set default driver

    if (this.isMultiThreaded) {
        this.libs = null;
        this.createLogFile();
        this.varmap = BaseHandler.threadData.get(threadIndex);
        if (this.libs == null || this.libs.isEmpty()) {
            this.libs = this.parseTagLib();
        }//from   w  w  w  .  j  a va 2  s  .  co m

    } else {
        this.libs = this.parseTagLib();
        this.varmap = BaseHandler.getVarMap();
        this.threadIndex = this.varmap.get("datasetIndex");
    }

    this.printMessage("####### SELENIUM TEST STARTED #################");

    this.printMessage("####### Dataset:" + this.varmap.values());

    this.timer = new PrintTime();
    File file = null;
    //driver = new FirefoxDriver();

    v_driver = getDeclaredVariable("driver");
    if (v_driver == null || v_driver.isEmpty()) {
        v_driver = ConfigLoader.getConfig("SELENIUM_DRIVER");
        if (v_driver == null || v_driver.isEmpty()) {
            v_driver = "firefox";
        }
    }
    String driver_path = getDeclaredVariable("driver_path");
    if (v_driver.equalsIgnoreCase("chrome")) {
        if (TestEngine.suite != null) {
            file = new File(driver_path != null && !driver_path.isEmpty() ? driver_path : chrome_driver_path);
            if (!file.exists()) {
                String chrome_path = TestEngine.suite.getWorkspace() + TestEngine.suite.getJobname()
                        + "/lib/chromedriver.exe";
                file = new File(chrome_path);
                if (!file.exists()) {
                    file = new File(TestEngine.suite.getWorkspace() + "/lib/chromedriver.exe");
                }
            }
        } else {
            file = new File(driver_path != null && !driver_path.isEmpty() ? driver_path : chrome_driver_path);
        }
        this.printMessage("Chrome Driver Path=" + file.getAbsolutePath());
        System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
        DesiredCapabilities capability = DesiredCapabilities.chrome();
        //capability.setCapability("chrome.switches", Arrays.asList("--allow-running-insecure-content=true"));
        if (System.getProperty("os.name").toLowerCase().contains("mac")) {
            file = new File(ConfigLoader.getWmRoot() + "/lib/chromedriver_mac");
            System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
            capability.setCapability("platform", Platform.ANY);
            capability.setCapability("binary", "/Application/chrome"); //for linux "chrome.switches", "--verbose"
            capability.setCapability("chrome.switches", "--verbose");
            driver = new ChromeDriver(capability);

        } else {
            driver = new ChromeDriver(capability);
        }
    } else if (v_driver.equalsIgnoreCase("ie")) {
        if (is64bit()) {
            file = new File(driver_path != null && !driver_path.isEmpty() ? driver_path : ie_driver_path64bit);
        } else {
            file = new File(driver_path != null && !driver_path.isEmpty() ? driver_path : ie_driver_path32bit);
        }
        this.printMessage("##### IE DRIVER PATH=" + file.getAbsolutePath());
        System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
        DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
        capability.setCapability("acceptSslCerts", true);
        capability.setCapability("platform", Platform.WINDOWS);
        capability.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
        if (is64bit()) {
            capability.setCapability("iedriver-version", "x64_2.41.0");
        }
        //capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
        driver = new InternetExplorerDriver(capability);
        maxTimeToWait = maxTimeToWait * 5;
        this.isIE = true;

    } else if (v_driver.equalsIgnoreCase("firefox")) {

        /*file = new File("firebug-1.8.1.xpi");
        FirefoxProfile firefoxProfile = new FirefoxProfile();
        firefoxProfile.setPreference("security.mixed_content.block_active_content", false);
        firefoxProfile.setPreference("security.mixed_content.block_display_content", true);
        firefoxProfile.setPreference("browser.cache.disk.enable", true);
        firefoxProfile.addExtension(file);
        firefoxProfile.setPreference("extensions.firebug.currentVersion", "1.8.1"); // Avoid startup screen
        driver = new FirefoxDriver(firefoxProfile);
        */
        if (System.getProperty("os.name").toLowerCase().contains("mac")) {
            DesiredCapabilities capability = DesiredCapabilities.firefox();
            capability.setCapability("platform", Platform.ANY);
            capability.setCapability("binary", "/Application/firefox"); //for linux
            //capability.setCapability("binary", "/ms/dist/fsf/PROJ/firefox/16.0.0/bin/firefox"); //for linux

            //capability.setCapability("binary", "C:\\Program Files\\Mozilla  Firefox\\msfirefox.exe"); //for windows                
            driver = new FirefoxDriver(capability);

        } else {
            //
            driver = new FirefoxDriver();
        }
    } else if (v_driver.equalsIgnoreCase("safari")) {

        if (System.getProperty("os.name").toLowerCase().contains("mac")) {
            this.printMessage("#####STARTING Safri in Mac ####");
            DesiredCapabilities capability = DesiredCapabilities.safari();
            capability.setCapability("platform", Platform.ANY);
            capability.setCapability("binary", "/Application/safari"); //for linux
            driver = new SafariDriver(capability);

        } else {
            // Read Instruction for Safari Extension
            //http://rationaleemotions.wordpress.com/2012/05/25/working-with-safari-driver/
            // Get certificate from https://docs.google.com/folder/d/0B5KGduKl6s6-ZGpPZlA0Rm03Nms/edit
            this.printMessage("#####STARTING Safri in Windows ####");
            String safari_install_path = "C:\\Program Files (x86)\\Safari\\";
            DesiredCapabilities capability = DesiredCapabilities.safari();
            capability.setCapability("platform", Platform.ANY);
            capability.setCapability("binary", safari_install_path + "Safari.exe"); //for windows 
            //capability.setCapability(SafariDriver.DATA_DIR_CAPABILITY, "C:\\Program Files (x86)\\Safari\\SafariData");
            //System.setProperty("webdriver.safari.driver", safari_install_path+"SafariDriver.safariextension\\");
            driver = new SafariDriver(capability);

        }
    } else if (v_driver.equalsIgnoreCase("htmlunit")) {
        DesiredCapabilities capability = DesiredCapabilities.htmlUnit();
        capability.setJavascriptEnabled(true);
        //capability.setCapability("browserName","chrome");
        //capability.setBrowserName(BrowserVersion.CHROME);
        driver = new HtmlUnitDriver(capability);

    } else {
        file = new File(driver_path != null && !driver_path.isEmpty() ? driver_path : chrome_driver_path);
        System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
        driver = new ChromeDriver();
    }

    baseUrl = ConfigLoader.getConfig("BASE_APPLICATION_URL");
    baseUrl = baseUrl.replace("[env]", ConfigLoader.getConfig("QA_TEST_ENV"));
    for (Cookie cookie : driver.manage().getCookies()) {
        printMessage("name=" + cookie.getName());
        printMessage("domain=" + cookie.getDomain());
        printMessage("path=" + cookie.getPath());
        printMessage("value=" + cookie.getValue());
    }
    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();

    if (this.varmap.get("browserwidth") != null) {
        try {
            browserwidth = new Integer(this.varmap.get("browserwidth"));
        } catch (Exception e) {
            browserwidth = 1020;
        }
    }
    driver.manage().window().setSize(new Dimension(browserwidth, (int) screenSize.getHeight()));
    String removecookie = getDeclaredVariable("removecookie");
    if (this.isEmptyValue(removecookie) || removecookie.equalsIgnoreCase("yes")) {
        driver.manage().deleteAllCookies();
    }
    driver.manage().timeouts().implicitlyWait(maxTimeToWait, TimeUnit.SECONDS);
    driverList.put(this.threadIndex, driver);
    this.resetTestResult();

}

From source file:com.testmax.util.JavaScriptUtl.java

License:CDDL license

public WebDriver initWebDriverDriver(String browser) {

    this.browser = browser;

    File file = null;/*from ww w  . j  a  v a  2  s .  c  om*/
    if (browser == null || browser.isEmpty()) {
        browser = "firefox";
    }
    try {
        String driver_path = "";
        if (browser.equalsIgnoreCase("chrome")) {
            if (TestEngine.suite != null) {
                String chrome_path = TestEngine.suite.getWorkspace() + TestEngine.suite.getJobname()
                        + "/lib/chromedriver.exe";
                file = new File(chrome_path);
                if (!file.exists()) {
                    file = new File(TestEngine.suite.getWorkspace() + "/lib/chromedriver.exe");
                }
            } else {
                file = new File(
                        driver_path != null && !driver_path.isEmpty() ? driver_path : chrome_driver_path);
            }
            WmLog.printMessage("Chrome Driver Path=" + file.getAbsolutePath());
            System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
            if (System.getProperty("os.name").toLowerCase().contains("mac")) {
                file = new File(ConfigLoader.getWmRoot() + "/lib/chromedriver_mac");
                System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
                DesiredCapabilities capability = DesiredCapabilities.chrome();
                capability.setCapability("platform", Platform.ANY);
                capability.setCapability("binary", "/Application/chrome"); //for linux
                driver = new ChromeDriver(capability);

            } else {
                driver = new ChromeDriver();
            }
        } else if (browser.equalsIgnoreCase("ie")) {
            if (is64bit()) {
                file = new File(
                        driver_path != null && !driver_path.isEmpty() ? driver_path : ie_driver_path64bit);
            } else {
                file = new File(
                        driver_path != null && !driver_path.isEmpty() ? driver_path : ie_driver_path32bit);
            }
            WmLog.printMessage("##### IE DRIVER PATH=" + file.getAbsolutePath());
            System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
            driver = new InternetExplorerDriver();
            maxTimeToWait = maxTimeToWait * 5;

        } else if (browser.equalsIgnoreCase("firefox")) {
            DesiredCapabilities capability = DesiredCapabilities.firefox();
            LoggingPreferences prefs = new LoggingPreferences();
            prefs.enable(LogType.BROWSER, Level.ALL);
            capability.setCapability(CapabilityType.LOGGING_PREFS, prefs);

            if (System.getProperty("os.name").toLowerCase().contains("mac")) {
                //DesiredCapabilities capability = DesiredCapabilities.firefox();
                capability.setCapability("platform", Platform.ANY);
                capability.setCapability("binary", "/Application/firefox"); //for linux

                driver = new FirefoxDriver(capability);

            } else {

                driver = new FirefoxDriver(capability);
            }
        } else if (browser.equalsIgnoreCase("safari")) {

            if (System.getProperty("os.name").toLowerCase().contains("mac")) {
                WmLog.printMessage("#####STARTING Safri in Mac ####");
                DesiredCapabilities capability = DesiredCapabilities.safari();
                capability.setCapability("platform", Platform.ANY);
                capability.setCapability("binary", "/Application/safari"); //for linux
                driver = new SafariDriver(capability);

            } else {
                // Read Instruction for Safari Extension
                //http://rationaleemotions.wordpress.com/2012/05/25/working-with-safari-driver/
                // Get certificate from https://docs.google.com/folder/d/0B5KGduKl6s6-ZGpPZlA0Rm03Nms/edit
                WmLog.printMessage("#####STARTING Safri in Windows ####");
                String safari_install_path = "C:\\Program Files (x86)\\Safari\\";
                DesiredCapabilities capability = DesiredCapabilities.safari();
                capability.setCapability("platform", Platform.ANY);
                capability.setCapability("binary", safari_install_path + "Safari.exe"); //for windows 
                //capability.setCapability(SafariDriver.DATA_DIR_CAPABILITY, "C:\\Program Files (x86)\\Safari\\SafariData");
                //System.setProperty("webdriver.safari.driver", safari_install_path+"SafariDriver.safariextension\\");
                driver = new SafariDriver(capability);

            }
        } else if (browser.equalsIgnoreCase("htmlunit")) {
            DesiredCapabilities capability = DesiredCapabilities.htmlUnit();
            capability.setJavascriptEnabled(true);
            //capability.setCapability("browserName","chrome");
            //capability.setBrowserName(BrowserVersion.CHROME);
            driver = new HtmlUnitDriver(capability);

        } else {
            file = new File(driver_path != null && !driver_path.isEmpty() ? driver_path : chrome_driver_path);
            System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
            driver = new ChromeDriver();

        }
        driver.manage().timeouts().implicitlyWait(maxTimeToWait, TimeUnit.SECONDS);

    } catch (Exception e) {

        WmLog.printMessage("******** FAILED to launch browser=" + this.browser + " :" + e.getMessage());
        e.printStackTrace();
    }

    return driver;
}

From source file:com.thoughtworks.selenium.SeleneseTestNgHelperVir.java

License:Apache License

/**
 * Start browser session.//from w w  w . ja  v  a2  s  . c om
 * 
 * @param browserString
 *            the browser string
 */
public final void startBrowserSession(final String browserString) {

    DesiredCapabilities capabilities = getWebDriverCapabilities();
    WebDriver driver;
    if (browserString.contains("chrome") || browserString.contains("Chrome")) {
        driver = new ChromeDriver();

    } else if (browserString.contains("safari")) {

        DesiredCapabilities.safari();
        driver = new SafariDriver(capabilities);

    } else if (browserString.contains("iexplore")) {

        DesiredCapabilities.internetExplorer();
        capabilities.setJavascriptEnabled(true);
        driver = new InternetExplorerDriver(capabilities);

    } else if (browserString.contains("firefox")) {
        FirefoxProfile profile = getDefaultProfile();
        profile.setEnableNativeEvents(true);
        driver = new FirefoxDriver(profile);

    } else if (browserString.contains("opera")) {

        DesiredCapabilities.opera();
        driver = new OperaDriver(capabilities);
    } else {
        getLog().info("Unsupported browser type passed " + browserString);
        throw new AssertionError("Unsupported Browser");
    }

    setDriver(driver);
    if (getSeleniumInstances().isEmpty()) {
        putSeleniumInstances("default", driver);
    } else {
        putSeleniumInstances(getSeleniumInstanceName(), driver);
    }
}

From source file:com.vilt.minium.script.impl.SafariDriverFactory.java

License:Apache License

@Override
public WebDriver create(DesiredCapabilities capabilities) {
    return new SafariDriver(capabilities);
}

From source file:de.ppi.selenium.browser.DefaultWebDriverFactory.java

License:Apache License

@Override
public WebDriver createWebDriver(Map<String, String> options, DesiredCapabilities capabilities)
        throws IOException {
    ClientProperties properties = new ClientProperties(options.get(CLIENT_PROPERTIES_KEY));

    WebDriver wd = null;/*from w  ww  .ja  v a 2 s. c  om*/
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities(capabilities);
    String browser = properties.getBrowser();

    if (properties.isUseGrid()) {
        RemoteWebDriver remoteWebDriver = new RemoteWebDriver(new URL(properties.getGridUrl()), capabilities);
        remoteWebDriver.setFileDetector(new LocalFileDetector());
        wd = remoteWebDriver;
    } else {
        if (browser == null || browser.equals("")) {
            throw new RuntimeException(
                    "Browser cannot be null. Please set 'browser' in client properties. Supported browser types: IE, Firefox, Chrome, Safari, HtmlUnit.");
        } else if (browser.equalsIgnoreCase("ie") || browser.equalsIgnoreCase("iexplore")
                || browser.equalsIgnoreCase("*iexplore")) {
            String webdriverIEDriver = properties.getWebDriverIEDriver();

            if (webdriverIEDriver != null) {
                System.setProperty("webdriver.ie.driver", webdriverIEDriver);
            }

            String browserVersion = properties.getBrowserVersion();

            if (browserVersion == null || browserVersion.equals("")) {
                throw new RuntimeException(
                        "When using IE as the browser, please set 'browser.version' in client properties");
            } else {
                if (browserVersion.startsWith("9")) {
                    desiredCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
                    desiredCapabilities.setCapability(
                            InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
                    wd = new InternetExplorerDriver(desiredCapabilities);
                } else {
                    wd = new InternetExplorerDriver(desiredCapabilities);
                }
            }
        } else if ((browser.equalsIgnoreCase("firefox") || browser.equalsIgnoreCase("*firefox"))) {
            final String ffProfileFolder = properties.getFirefoxProfileFolder();
            final String ffProfileFile = properties.getFirefoxProfileFile();
            final String path = properties.getFfBinaryPath();
            final FirefoxProfile ffp;
            if (ffProfileFolder != null) {
                ffp = new FirefoxProfile(new File(ffProfileFolder));
            } else {
                ffp = new FirefoxProfile();
            }

            if (ffProfileFile != null) {
                addPreferences(ffp, ffProfileFile);
            }

            addPreferences(ffp, properties);

            List<String> ffExtensions = properties.getFirefoxExtensions();
            if (ffExtensions != null && ffExtensions.size() > 0) {
                addExtensionsToFirefoxProfile(ffp, ffExtensions);
            }

            if (path != null) {
                FirefoxBinary fireFox = getFFBinary(path);
                wd = new FirefoxDriver(fireFox, ffp, desiredCapabilities);
            } else {
                wd = new FirefoxDriver(new FirefoxBinary(), ffp, desiredCapabilities);

            }
        } else if (browser.equalsIgnoreCase("chrome")) {

            final String webdriverChromeDriver = properties.getWebDriverChromeDriver();

            if (webdriverChromeDriver != null) {
                System.setProperty("webdriver.chrome.driver", webdriverChromeDriver);
            }

            final ChromeOptions chromeOptions = new ChromeOptions();
            final String chromeBinaryPath = properties.getChromeBinaryPath();
            if (chromeBinaryPath != null) {
                chromeOptions.setBinary(chromeBinaryPath);
            }

            if (properties.getAcceptedLanguages() != null) {

                final Map<String, Object> prefs = new HashMap<String, Object>();
                prefs.put("intl.accept_languages", properties.getAcceptedLanguages());
                chromeOptions.setExperimentalOption("prefs", prefs);
            }
            desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, chromeOptions);

            wd = new ChromeDriver(desiredCapabilities);

        } else if (browser.equalsIgnoreCase("safari")) {
            wd = new SafariDriver(desiredCapabilities);
        } else if (browser.equalsIgnoreCase("htmlunit")) {
            final BrowserVersion browserVersion = BrowserVersion.FIREFOX_45;
            if (properties.getAcceptedLanguages() != null) {
                browserVersion.setBrowserLanguage(properties.getAcceptedLanguages().split(",")[0]);
            }
            wd = new HtmlUnitDriver(browserVersion);
            ((HtmlUnitDriver) wd).setJavascriptEnabled(true);
        } else if (browser.equalsIgnoreCase("phantomjs")) {
            final String webdriverPhantomJSDriver = properties.getWebDriverPhantomJSDriver();
            if (properties.getAcceptedLanguages() != null) {
                desiredCapabilities.setCapability("phantomjs.page.customHeaders.Accept-Language",
                        properties.getAcceptedLanguages());
            }

            if (webdriverPhantomJSDriver != null) {
                desiredCapabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                        webdriverPhantomJSDriver);
                wd = new PhantomJSDriver(desiredCapabilities);
            } else {
                wd = new PhantomJSDriver(ResolvingPhantomJSDriverService.createDefaultService(),
                        desiredCapabilities);
            }
        } else {
            throw new IllegalArgumentException("Unsupported browser type: " + browser
                    + ". Supported browser types: IE, Firefox, Chrome, Safari, HtmlUnit, phantomjs.");
        }

        // move browser windows to specific position. It's useful for
        // debugging...
        final int browserInitPositionX = properties.getBrowserInitPositionX();
        final int browserInitPositionY = properties.getBrowserInitPositionY();
        if (browserInitPositionX != 0 || browserInitPositionY != 0) {
            wd.manage().window().setSize(new Dimension(1280, 1024));
            wd.manage().window().setPosition(new Point(browserInitPositionX, browserInitPositionY));
        }
        wd.manage().timeouts().implicitlyWait(properties.getAppearWaitTime(), TimeUnit.MILLISECONDS);
    }

    return wd;
}

From source file:edu.samplu.common.WebDriverUtil.java

License:Educational Community License

/**
 * remote.public.driver set to chrome or firefox (null assumes firefox)
 * if remote.public.hub is set a RemoteWebDriver is created (Selenium Grid)
 * if proxy.host is set, the web driver is setup to use a proxy
 * @return WebDriver or null if unable to create
 *///from   w  w  w  .j a  va 2s.c o m
public static WebDriver getWebDriver() {
    String driverParam = System.getProperty(ITUtil.HUB_DRIVER_PROPERTY);
    String hubParam = System.getProperty(ITUtil.HUB_PROPERTY);
    String proxyParam = System.getProperty(PROXY_HOST_PROPERTY);

    // setup proxy if specified as VM Arg
    DesiredCapabilities capabilities = new DesiredCapabilities();
    WebDriver webDriver = null;
    if (StringUtils.isNotEmpty(proxyParam)) {
        capabilities.setCapability(CapabilityType.PROXY, new Proxy().setHttpProxy(proxyParam));
    }

    if (hubParam == null) {
        if (driverParam == null || "firefox".equalsIgnoreCase(driverParam)) {
            FirefoxProfile profile = new FirefoxProfile();
            profile.setEnableNativeEvents(false);
            capabilities.setCapability(FirefoxDriver.PROFILE, profile);
            return new FirefoxDriver(capabilities);
        } else if ("chrome".equalsIgnoreCase(driverParam)) {
            return new ChromeDriver(capabilities);
        } else if ("safari".equals(driverParam)) {
            System.out.println("SafariDriver probably won't work, if it does please contact Erik M.");
            return new SafariDriver(capabilities);
        }
    } else {
        try {
            if (driverParam == null || "firefox".equalsIgnoreCase(driverParam)) {
                return new RemoteWebDriver(new URL(ITUtil.getHubUrlString()), DesiredCapabilities.firefox());
            } else if ("chrome".equalsIgnoreCase(driverParam)) {
                return new RemoteWebDriver(new URL(ITUtil.getHubUrlString()), DesiredCapabilities.chrome());
            }
        } catch (MalformedURLException mue) {
            System.out.println(ITUtil.getHubUrlString() + " " + mue.getMessage());
            mue.printStackTrace();
        }
    }
    return null;
}

From source file:io.ddavison.conductor.Locomotive.java

License:Open Source License

public Locomotive() {
    final Properties props = new Properties();
    try {//from   w  ww . j ava2s. com
        props.load(getClass().getResourceAsStream("/default.properties"));
    } catch (IOException e) {
        logFatal("Couldn't load in default properties");
    } catch (Exception e) {
    }

    /**
     * Order of overrides:
     * <ol>
     *     <li>Test</li>
     *     <li>JVM Arguments</li>
     *     <li>Default properties</li>
     * </ol>
     */
    final Config testConfiguration = getClass().getAnnotation(Config.class);

    configuration = new LocomotiveConfig(testConfiguration, props);

    DesiredCapabilities capabilities;

    Capabilities extraCapabilities;
    try {
        extraCapabilities = configuration.capabilities().newInstance();
    } catch (InstantiationException | IllegalAccessException e) {
        e.printStackTrace();
        logFatal(e.getMessage());
        System.exit(1);
        return;
    }

    baseUrl = configuration.url();

    log.debug(String.format(
            "\n=== Configuration ===\n" + "\tURL:     %s\n" + "\tBrowser: %s\n" + "\tHub:     %s\n"
                    + "\tBase url: %s\n",
            configuration.url(), configuration.browser().moniker, configuration.hub(),
            configuration.baseUrl()));

    boolean isLocal = StringUtils.isEmpty(configuration.hub());

    switch (configuration.browser()) {
    case CHROME:
        capabilities = DesiredCapabilities.chrome();
        capabilities.merge(extraCapabilities);
        if (isLocal)
            try {
                driver = new ChromeDriver(capabilities);
            } catch (Exception x) {
                x.printStackTrace();
                logFatal(
                        "Also see https://github.com/conductor-framework/conductor/wiki/WebDriver-Executables");
                System.exit(1);
            }
        break;
    case FIREFOX:
        capabilities = DesiredCapabilities.firefox();
        capabilities.merge(extraCapabilities);
        if (isLocal)
            try {
                driver = new FirefoxDriver(capabilities);
            } catch (Exception x) {
                x.printStackTrace();
                logFatal(
                        "Also see https://github.com/conductor-framework/conductor/wiki/WebDriver-Executables");
                System.exit(1);
            }
        break;
    case INTERNET_EXPLORER:
        capabilities = DesiredCapabilities.internetExplorer();
        capabilities.merge(extraCapabilities);
        if (isLocal)
            try {
                driver = new InternetExplorerDriver(capabilities);
            } catch (Exception x) {
                x.printStackTrace();
                logFatal(
                        "Also see https://github.com/conductor-framework/conductor/wiki/WebDriver-Executables");
                System.exit(1);
            }
        break;
    case EDGE:
        capabilities = DesiredCapabilities.edge();
        capabilities.merge(extraCapabilities);
        if (isLocal)
            try {
                driver = new EdgeDriver(capabilities);
            } catch (Exception x) {
                x.printStackTrace();
                logFatal(
                        "Also see https://github.com/conductor-framework/conductor/wiki/WebDriver-Executables");
                System.exit(1);
            }
        break;
    case SAFARI:
        capabilities = DesiredCapabilities.safari();
        capabilities.merge(extraCapabilities);
        if (isLocal)
            try {
                driver = new SafariDriver(capabilities);
            } catch (Exception x) {
                x.printStackTrace();
                logFatal(
                        "Also see https://github.com/conductor-framework/conductor/wiki/WebDriver-Executables");
                System.exit(1);
            }
        break;
    case PHANTOMJS:
        capabilities = DesiredCapabilities.phantomjs();
        capabilities.merge(extraCapabilities);
        if (isLocal)
            try {
                driver = new PhantomJSDriver(capabilities);
            } catch (Exception x) {
                x.printStackTrace();
                logFatal(
                        "Also see https://github.com/conductor-framework/conductor/wiki/WebDriver-Executables");
                System.exit(1);
            }
        break;
    default:
        System.err.println("Unknown browser: " + configuration.browser());
        return;
    }

    if (!isLocal)
        // they are using a hub.
        try {
            capabilities.merge(extraCapabilities);
            driver = new RemoteWebDriver(new URL(configuration.hub()), capabilities); // just override the driver.
        } catch (Exception x) {
            logFatal("Couldn't connect to hub: " + configuration.hub());
            x.printStackTrace();
            return;
        }

    actions = new Actions(driver);

    if (StringUtils.isNotEmpty(baseUrl))
        driver.navigate().to(baseUrl);
}

From source file:io.wcm.qa.galenium.webdriver.WebDriverManager.java

License:Apache License

private WebDriver newDriver(TestDevice newTestDevice) {

    logInfo("Creating new " + runMode + " " + newTestDevice.getBrowserType() + " WebDriver for thread "
            + Thread.currentThread().getName());

    DesiredCapabilities capabilities = getDesiredCapabilities(newTestDevice);

    GaleniumReportUtil.getLogger().info("Getting driver for runmode '" + runMode + "'");
    switch (runMode) {
    case REMOTE://from ww w  . j  av a 2s  .com
        logInfo("Connecting to grid at " + host + ":" + port + "...");
        try {
            driver = new RemoteWebDriver(new URL("http", host, port, "/wd/hub"), capabilities);
        } catch (MalformedURLException ex) {
            throw new RuntimeException(
                    "Couldn't construct valid URL using selenium.host=" + host + " and selenium.port=" + port);
        }
        break;

    default:
    case LOCAL:
        switch (newTestDevice.getBrowserType()) {
        case CHROME:
            driver = new ChromeDriver(capabilities);
            break;

        case IE:
            driver = new InternetExplorerDriver(capabilities);
            break;

        case SAFARI:
            driver = new SafariDriver(capabilities);
            break;

        case PHANTOMJS:
            driver = new PhantomJSDriver(capabilities);
            break;

        default:
        case FIREFOX:
            driver = new FirefoxDriver(capabilities);
            break;
        }
        break;
    }

    return driver;
}