Example usage for org.openqa.selenium.remote RemoteWebDriver setFileDetector

List of usage examples for org.openqa.selenium.remote RemoteWebDriver setFileDetector

Introduction

In this page you can find the example usage for org.openqa.selenium.remote RemoteWebDriver setFileDetector.

Prototype

public void setFileDetector(FileDetector detector) 

Source Link

Document

Set the file detector to be used when sending keyboard input.

Usage

From source file:de.dentrassi.pm.testing.TestSuite.java

License:Open Source License

protected static RemoteWebDriver createSauce(final Platform os, final String browser, final String version)
        throws MalformedURLException {
    final DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.BROWSER_NAME, browser);
    if (version != null) {
        capabilities.setCapability(CapabilityType.VERSION, version);
    }// w  w w.j  av a 2s .  c  om
    capabilities.setCapability(CapabilityType.PLATFORM, os);
    capabilities.setCapability("name", "Package Drone Main Test");

    final RemoteWebDriver driver = new RemoteWebDriver(new URL(
            String.format("http://%s:%s@ondemand.saucelabs.com:80/wd/hub", SAUCE_USER_NAME, SAUCE_ACCESS_KEY)),
            capabilities);

    driver.setFileDetector(new LocalFileDetector());

    return driver;
}

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;/*ww  w  .ja  va2s.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:minium.web.config.WebDriverFactory.java

License:Apache License

public WebDriver create(WebDriverProperties webDriverProperties) {
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities(
            webDriverProperties.getDesiredCapabilities());
    DesiredCapabilities requiredCapabilities = new DesiredCapabilities(
            webDriverProperties.getRequiredCapabilities());
    WebDriver webDriver = null;/*w w w . j  av  a 2s .  c  o m*/
    if (webDriverProperties.getUrl() != null) {
        RemoteWebDriver remoteDriver = new RemoteWebDriver(webDriverProperties.getUrl(), desiredCapabilities,
                requiredCapabilities);
        remoteDriver.setFileDetector(new LocalFileDetector());
        webDriver = remoteDriver;
    } else {
        String browserName = desiredCapabilities == null ? null : desiredCapabilities.getBrowserName();
        if (Strings.isNullOrEmpty(browserName))
            browserName = BrowserType.CHROME;
        webDriver = WebDriverType.typeFor(browserName).create(this, desiredCapabilities, requiredCapabilities);
    }
    WindowProperties window = webDriverProperties.getWindow();
    if (window != null) {
        DimensionProperties size = window.getSize();
        PointProperties position = window.getPosition();
        if (size != null)
            webDriver.manage().window().setSize(new Dimension(size.getWidth(), size.getHeight()));
        if (position != null)
            webDriver.manage().window().setPosition(new Point(position.getX(), position.getY()));
        if (window.isMaximized()) {
            webDriver.manage().window().maximize();
        }
    }
    return webDriver instanceof TakesScreenshot ? webDriver : new Augmenter().augment(webDriver);
}

From source file:org.alfresco.grid.WebDriverFactory.java

License:Open Source License

/**
 * Creates a new instance of an {@link WebDriver}
 * @return {@link DesiredCapabilities} type of browser capability
 * @throws UnsupportedOperationException if grid url is invalid
 *//*ww  w.ja v  a2 s  .co m*/
private WebDriver getRemoteDriver(DesiredCapabilities capability) {
    URL url;

    if (gridUrl == null || gridUrl.isEmpty()) {
        throw new UnsupportedOperationException("Grid url is required");
    }
    try {
        url = new URL(gridUrl);
    } catch (MalformedURLException e) {
        throw new UnsupportedOperationException(
                String.format("A valid grid url is required instead of given url: %s", gridUrl), e);
    }
    capability.setCapability(CapabilityType.TAKES_SCREENSHOT, true);
    RemoteWebDriver remoteWebDriver = new RemoteWebDriver(url, capability);
    remoteWebDriver.setFileDetector(new LocalFileDetector());
    return remoteWebDriver;
}

From source file:org.aludratest.service.gui.web.selenium.selenium2.Selenium2Driver.java

License:Apache License

/** @param url the URL for which to create a WebDriver instance.
 * @param arguments Additional arguments to include for the WebDriver instance, or an empty array.
 * @return a freshly created instance of the related WebDriver class */
public WebDriver newRemoteDriver(URL url, String[] arguments) {
    AludraSeleniumHttpCommandExecutor executor = new AludraSeleniumHttpCommandExecutor(url);

    DesiredCapabilities caps = capabilities;
    if (arguments != null && arguments.length > 0) {
        caps = new DesiredCapabilities(capabilities);
        // this looks strange, but is the only way to avoid having all Threads sharing the same ChromeOptions object
        ChromeOptions opts = (ChromeOptions) createChromeCaps().getCapability(ChromeOptions.CAPABILITY);
        if (opts != null) {
            opts.addArguments(arguments);
            caps.setCapability(ChromeOptions.CAPABILITY, opts);
        }/*  w ww. jav  a2 s .c o  m*/
    }

    try {
        RemoteWebDriver driver = new RemoteWebDriver(executor, caps);
        driver.setFileDetector(new LocalFileDetector());
        return driver;
    } catch (WebDriverException e) {
        LoggerFactory.getLogger(Selenium2Driver.class).error(
                "Could not create remote web driver. Last remote HTTP response: " + executor.getLastResponse());
        throw e;
    }
}

From source file:org.callimachusproject.webdriver.helpers.BrowserFunctionalTestCase.java

License:Apache License

private void init(RemoteWebDriver driver) {
    try {// w ww .  j  a  v a  2s  .co m
        driver.setFileDetector(new LocalFileDetector());
    } catch (WebDriverException e) {
        // ignore
    }
    int wait = WebBrowserDriver.IMPLICITLY_WAIT;
    driver.manage().timeouts().implicitlyWait(wait, TimeUnit.SECONDS);
    driver.manage().timeouts().setScriptTimeout(wait, TimeUnit.SECONDS);
    driver.navigate().to(getStartUrl());
}

From source file:org.eclipse.packagedrone.testing.server.TestSuite.java

License:Open Source License

protected static RemoteWebDriver createSauce(final Platform os, final String browser, final String version)
        throws MalformedURLException {
    final DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setBrowserName(browser);
    if (version != null) {
        capabilities.setVersion(version);
    }//  ww  w.ja  va 2s  . c om
    capabilities.setCapability(CapabilityType.PLATFORM, os);
    capabilities.setCapability(CapabilityType.SUPPORTS_FINDING_BY_CSS, true);
    capabilities.setCapability("name", "Eclipse Package Drone Main Test");

    if (System.getenv("TRAVIS_JOB_NUMBER") != null) {
        capabilities.setCapability("tunnel-identifier", System.getenv("TRAVIS_JOB_NUMBER"));
        capabilities.setCapability("build", System.getenv("TRAVIS_BUILD_NUMBER"));
        capabilities.setCapability("tags", new String[] { "CI" });
    }

    final RemoteWebDriver driver = new RemoteWebDriver(
            new URL(String.format("http://%s:%s@%s/wd/hub", SAUCE_USER_NAME, SAUCE_ACCESS_KEY, SAUCE_URL)),
            capabilities);

    driver.setFileDetector(new LocalFileDetector());

    return driver;
}

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  w w  w.java 2 s.com
    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.usapi.SeleniumFactory.java

License:Apache License

/**
 * Returns an instance of WebDriver./*ww w  .j av a2 s .  c  o  m*/
 *
 * This is a singleton that is instantiated with parameters 
 * from system properties with overrides
 */
public static WebDriver getWebDriverInstance() {
    if (webDriver == null) {
        String browser = PropertyHelper.getSeleniumBrowserCommand();

        String seleniumServerHost = PropertyHelper.getSeleniumServerHost();
        String seleniumServerPort = PropertyHelper.getSeleniumServerPort();
        // if selenium server host/port properties are set, they were passed in via 
        // .properties or -D.  Either way, this tells us that we are running on the
        // grid and need to instantiate our web driver such that it knows to use
        // selenium server
        if (seleniumServerHost.length() > 0 && seleniumServerPort.length() > 0) {
            URL seleniumServerUrl = null;
            try {
                seleniumServerUrl = new URL(
                        "http://" + seleniumServerHost + ":" + seleniumServerPort + "/wd/hub");
            } catch (MalformedURLException e) {
                // this should never happen, as the default values for serverHost and port are localhost and 4444.  Only if
                // overrides (from .properties or cmd line) result in an invalid URL this exception handler would get invoked.
                log.error("Invalid value for Selenium Server Host or Selenium Server Port.  Provided values: <"
                        + seleniumServerHost + "> <" + seleniumServerPort + ">");

            }
            DesiredCapabilities capability = getDesiredCapabilities(browser);
            if (browser.toLowerCase().contains(BROWSER_TYPE_FIREFOX)) {
                capability.setCapability("nativeEvents", PropertyHelper.getEnableNativeEvents());
                capability.setCapability("name", "Remote File Upload using Selenium 2's FileDetectors");
            }
            RemoteWebDriver rwd = new RemoteWebDriver(seleniumServerUrl, capability);
            rwd.setFileDetector(new LocalFileDetector());
            webDriver = new Augmenter().augment((WebDriver) rwd);
        }
        // no, we are not running on the grid.  Just instantiate the driver for the desired
        // browser directly.
        else {
            if (browser.toLowerCase().contains(BROWSER_TYPE_FIREFOX)) {
                FirefoxProfile p = new FirefoxProfile();
                p.setEnableNativeEvents(PropertyHelper.getEnableNativeEvents());
                webDriver = new FirefoxDriver(p);
            } else if (browser.toLowerCase().contains(BROWSER_TYPE_IEXPLORE)) {
                webDriver = new InternetExplorerDriver();
            } else if (browser.toLowerCase().contains(BROWSER_TYPE_CHROME)) {
                webDriver = new RemoteWebDriver(getChromeDriverURL(), DesiredCapabilities.chrome());
                webDriver = new Augmenter().augment((WebDriver) webDriver);
            } else if (browser.toLowerCase().contains(BROWSER_TYPE_SAFARI)) {
                webDriver = new SafariDriver();
            } else if (browser.toLowerCase().contains(BROWSER_TYPE_HTMLUNIT)) {
                DesiredCapabilities capabilities = getDesiredCapabilities(browser);
                capabilities.setJavascriptEnabled(PropertyHelper.getHtmlUnitEnableJavascript());

                webDriver = new HtmlUnitDriver(capabilities);
            }
        }

        // default in PropertyHelper is 0.  Set this options only if they were explicitly specified (.properties or 
        // in the environment
        long scriptTimeout = PropertyHelper.getScriptTimeout();
        long implicitlyWait = PropertyHelper.getImplicitlyWait();
        long pageLoadTimeout = PropertyHelper.getPageLoadTimeout();
        if (scriptTimeout > 0)
            webDriver.manage().timeouts().setScriptTimeout(scriptTimeout, TimeUnit.MILLISECONDS);
        if (implicitlyWait > 0)
            webDriver.manage().timeouts().implicitlyWait(implicitlyWait, TimeUnit.MILLISECONDS);
        if (pageLoadTimeout > 0)
            webDriver.manage().timeouts().pageLoadTimeout(pageLoadTimeout, TimeUnit.MILLISECONDS);
    }
    return webDriver;
}

From source file:xbdd.XbddDriver.java

License:Apache License

private static WebDriver getSeleniumGridRemoteDriver() throws MalformedURLException {
    final DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities.setBrowserName(System.getProperty("selenium.grid.browser", "firefox"));
    desiredCapabilities.setVersion(System.getProperty("selenium.grid.version", ""));
    desiredCapabilities.setPlatform(Platform.ANY);

    final URL url = new URL("http", System.getProperty("selenium.grid"),
            Integer.valueOf(System.getProperty("selenium.grid.port", "4444")), "/wd/hub");

    final RemoteWebDriver remoteWebDriver = new RemoteWebDriver(url, desiredCapabilities);
    remoteWebDriver.setFileDetector(new LocalFileDetector());
    return new Augmenter().augment(remoteWebDriver);
}