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:okw.gui.adapter.selenium.webdriver.SeSafariApp.java

License:Open Source License

public void StartApp() {
    MyLogger.LogFunctionStartDebug("StartApp");

    SafariOptions options = new SafariOptions();
    options.setUseCleanSession(true); //if you wish safari to forget session everytime

    SeDriver.getInstance().driver = new SafariDriver(options);
    this.Init();/*from  w  w  w  .j a  va 2  s  .co m*/

    MyLogger.LogFunctionEndDebug();
}

From source file:org.finra.jtaf.ewd.impl.DefaultSessionFactory.java

License:Apache License

@Override
public WebDriver createInnerDriver(Map<String, String> options, DesiredCapabilities capabilities)
        throws Exception {
    ClientProperties properties = new ClientProperties(options.get("client"));

    WebDriver wd = null;//from   www .  j  ava2 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.getBinaryPath();

            if (path != null) {
                FirefoxBinary fireFox = getFFBinary(path);
                FirefoxProfile ffp = null;

                if (ffProfileFolder != null) {
                    ffp = new FirefoxProfile(new File(ffProfileFolder));
                } else {
                    ffp = new FirefoxProfile();
                }

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

                addPreferences(ffp);

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

                wd = new FirefoxDriver(fireFox, ffp, desiredCapabilities);
            } else {
                wd = new FirefoxDriver(desiredCapabilities);
            }
        } else if (browser.equalsIgnoreCase("chrome")) {

            String webdriverChromeDriver = properties.getWebDriverChromeDriver();

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

            wd = new ChromeDriver(desiredCapabilities);
        } else if (browser.equalsIgnoreCase("safari")) {
            wd = new SafariDriver(desiredCapabilities);
        } else if (browser.equalsIgnoreCase("htmlunit")) {
            wd = new HtmlUnitDriver(desiredCapabilities);
            ((HtmlUnitDriver) wd).setJavascriptEnabled(true);
        } else {
            throw new Exception("Unsupported browser type: " + browser
                    + ". Supported browser types: IE, Firefox, Chrome, Safari, HtmlUnit.");
        }

        // 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));
        }
    }

    return wd;
}

From source file:org.kuali.rice.testtools.selenium.WebDriverUtils.java

License:Educational Community License

/**
 * <p>//w w  w  . ja v  a 2 s.co  m
 * remote.public.driver set to chrome or firefox (null assumes firefox).
 * </p><p>
 * 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
 * </p>
 *
 * @return WebDriver or null if unable to create
 */
public static WebDriver getWebDriver() {
    String driverParam = System.getProperty(HUB_DRIVER_PROPERTY);
    String hubParam = System.getProperty(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(getHubUrlString()), DesiredCapabilities.firefox());
            } else if ("chrome".equalsIgnoreCase(driverParam)) {
                return new RemoteWebDriver(new URL(getHubUrlString()), DesiredCapabilities.chrome());
            }
        } catch (MalformedURLException mue) {
            System.out.println(getHubUrlString() + " " + mue.getMessage());
            mue.printStackTrace();
        }
    }
    return null;
}

From source file:org.mozilla.zest.core.v1.ZestClientLaunch.java

License:Mozilla Public License

@Override
public String invoke(ZestRuntime runtime) throws ZestClientFailException {

    try {//w ww  .  java2s . c o m
        WebDriver driver = null;
        DesiredCapabilities cap = new DesiredCapabilities();

        String httpProxy = runtime.getProxy();
        if (httpProxy.length() > 0) {
            Proxy proxy = new Proxy();
            proxy.setHttpProxy(httpProxy);
            proxy.setSslProxy(httpProxy);
            cap.setCapability(CapabilityType.PROXY, proxy);
        }
        if (capabilities != null) {
            for (String capability : capabilities.split("\n")) {
                if (capability != null && capability.trim().length() > 0) {
                    String[] typeValue = capability.split("=");
                    if (typeValue.length != 2) {
                        throw new ZestClientFailException(this,
                                "Invalid capability, expected type=value : " + capability);
                    }
                    cap.setCapability(typeValue[0], typeValue[1]);
                }
            }
        }

        if ("Firefox".equalsIgnoreCase(this.browserType)) {
            driver = new FirefoxDriver(cap);
        } else if ("Chrome".equalsIgnoreCase(this.browserType)) {
            driver = new ChromeDriver(cap);
        } else if ("HtmlUnit".equalsIgnoreCase(this.browserType)) {
            driver = new HtmlUnitDriver(DesiredCapabilities.htmlUnit().merge(cap));
        } else if ("InternetExplorer".equalsIgnoreCase(this.browserType)) {
            driver = new InternetExplorerDriver(cap);
        } else if ("Opera".equalsIgnoreCase(this.browserType)) {
            driver = new OperaDriver(cap);
        } else if ("PhantomJS".equalsIgnoreCase(this.browserType)) {
            driver = new PhantomJSDriver(cap);
        } else if ("Safari".equalsIgnoreCase(this.browserType)) {
            driver = new SafariDriver(cap);
        } else {
            // See if its a class name
            try {
                Class<?> browserClass = this.getClass().getClassLoader().loadClass(this.browserType);
                Constructor<?> cons = browserClass.getConstructor(Capabilities.class);
                if (cons != null) {
                    driver = (WebDriver) cons.newInstance(cap);
                } else {
                    throw new ZestClientFailException(this,
                            "Unsupported browser type: " + this.getBrowserType());
                }
            } catch (ClassNotFoundException e) {
                throw new ZestClientFailException(this, "Unsupported browser type: " + this.getBrowserType());
            }
        }

        runtime.addWebDriver(getWindowHandle(), driver);

        if (this.url != null) {
            driver.get(runtime.replaceVariablesInString(this.url, true));
        }

        return getWindowHandle();

    } catch (Exception e) {
        throw new ZestClientFailException(this, e);
    }
}

From source file:org.musetest.selenium.providers.SafariDriverProvider.java

License:Open Source License

@Override
public WebDriver getDriver(SeleniumBrowserCapabilities capabilities, MuseExecutionContext context) {
    if (!capabilities.getName().equals(BrowserType.SAFARI))
        return null;

    synchronized (SafariDriverProvider.class) {
        return new SafariDriver(capabilities.toDesiredCapabilities());
    }/*from  w w w  .  j ava  2 s .  c  o m*/
}

From source file:org.nvonop.selenium.framework.Browser.java

License:Open Source License

/**
 * This method initialises the ThreadLocal WebDriver object according to the
 * supplied parameters to enable tests to run on a users local machine.
 *//*from  w  ww  .j a  v  a  2s . com*/
private void setLocalWebdriver() {

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setJavascriptEnabled(true);
    capabilities.setCapability("handlesAlerts", true);
    switch (getBrowserId(browser)) {
    case 0:
        capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
                Boolean.valueOf(System.getProperty("IGNORE_SECURITY_DOMAINS", "false")));
        driver.set(new InternetExplorerDriver(capabilities));
        break;
    case 1:
        driver.set(new FirefoxDriver(capabilities));
        break;
    case 2:
        driver.set(new SafariDriver(capabilities));
        break;
    case 3:
        driver.set(new ChromeDriver(capabilities));
        break;
    default:
        throw new WebDriverException("Browser not found: " + browser);
    }
}

From source file:org.nvonop.selenium.framework.utilities.BaseTest.java

License:Open Source License

/**
 * This method initialises the ThreadLocal WebDriver object according to the
 * supplied parameters to enable tests to run on a users local machine.
 *
 * @param browser  This can be set to "chrome", "internet explorer" or "firefox"
 * @param version  This should be set to reflect the browser required. It is only
 *                 used when matching capabilities for a RemoteWebDriver object
 *                 however./*from w w w .j  av a  2  s  . co  m*/
 * @param platform This should be set to whatever platform the test is required
 *                 to run on e.g. "WINDOWS", "MAC", "LINUX". It is only used when
 *                 matching capabilities for a RemoteWebDriver object however.
 */
public void setLocalWebdriver(String browser, String version, String platform) {

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setJavascriptEnabled(true);
    capabilities.setCapability("handlesAlerts", true);
    switch (getBrowserId(browser)) {
    case 0:
        capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,
                Boolean.valueOf(System.getProperty("IGNORE_SECURITY_DOMAINS", "false")));
        driver.set(new InternetExplorerDriver(capabilities));
        break;
    case 1:
        driver.set(new FirefoxDriver(capabilities));
        break;
    case 2:
        driver.set(new SafariDriver(capabilities));
        break;
    case 3:
        driver.set(new ChromeDriver(capabilities));
        break;
    default:
        throw new WebDriverException("Browser not found: " + browser);
    }
}

From source file:org.zaproxy.zap.extension.selenium.ExtensionSelenium.java

License:Apache License

private static WebDriver getWebDriverImpl(Browser browser, String proxyAddress, int proxyPort) {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    if (proxyAddress != null) {
        String httpProxy = proxyAddress + ":" + proxyPort;
        Proxy proxy = new Proxy();
        proxy.setHttpProxy(httpProxy);//from  w  w  w . j  a v  a2 s  .  c  o  m
        proxy.setSslProxy(httpProxy);
        capabilities.setCapability(CapabilityType.PROXY, proxy);
    }

    switch (browser) {
    case CHROME:
        return new ChromeDriver(capabilities);
    case FIREFOX:
        return new FirefoxDriver(capabilities);
    case HTML_UNIT:
        return new HtmlUnitDriver(capabilities);
    case INTERNET_EXPLORER:
        capabilities.setCapability(InternetExplorerDriver.IE_USE_PRE_PROCESS_PROXY, true);

        return new InternetExplorerDriver(capabilities);
    /* No longer supported in the Selenium standalone jar
     * need to decide if we support older Opera versions 
    case OPERA:
    OperaDriver driver = new OperaDriver(capabilities);
    if (proxyAddress != null) {
        driver.proxy().setProxyLocal(true);
        // XXX Workaround, in operadriver <= 1.5 the HTTPS proxy settings are not set according to desired capabilities
        // For more details see OperaProxy.parse(Proxy)
        driver.proxy().setHttpsProxy(proxyAddress + ":" + proxyPort);
    }
            
    return driver;
    */
    case PHANTOM_JS:
        final ArrayList<String> cliArgs = new ArrayList<>(4);
        cliArgs.add("--ssl-protocol=any");
        cliArgs.add("--ignore-ssl-errors=yes");

        cliArgs.add("--webdriver-logfile=" + Constant.getZapHome() + "/phantomjsdriver.log");
        cliArgs.add("--webdriver-loglevel=WARN");

        capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgs);

        return new PhantomJSDriver(capabilities);
    case SAFARI:
        return new SafariDriver(capabilities);
    default:
        throw new IllegalArgumentException("Unknown browser: " + browser);
    }
}