Example usage for org.openqa.selenium.remote DesiredCapabilities merge

List of usage examples for org.openqa.selenium.remote DesiredCapabilities merge

Introduction

In this page you can find the example usage for org.openqa.selenium.remote DesiredCapabilities merge.

Prototype

@Override
public DesiredCapabilities merge(Capabilities extraCapabilities) 

Source Link

Document

Merges the extra capabilities provided into this DesiredCapabilities instance.

Usage

From source file:com.atanas.kanchev.testframework.selenium.driverfactory.DesiredCapsFactory.java

License:Apache License

/**
 * <p>mergeCapabilities.</p>
 *
 * @param sourceCaps a {@link org.openqa.selenium.remote.DesiredCapabilities} object.
 * @param newCaps    a {@link org.openqa.selenium.remote.DesiredCapabilities} object.
 * @return a {@link org.openqa.selenium.remote.DesiredCapabilities} object.
 *///w  ww. ja  v a  2  s  . c om
public DesiredCapabilities mergeCapabilities(DesiredCapabilities sourceCaps, DesiredCapabilities newCaps) {

    logger.debug("Merging capabilities [NEW_CAPS]: " + newCaps + " into [SOURCE]: " + sourceCaps);

    return caps = sourceCaps.merge(newCaps);
}

From source file:com.mengge.service.local.AppiumServiceBuilder.java

License:Apache License

/**
 * @param capabilities is an instance of
 * {@link org.openqa.selenium.remote.DesiredCapabilities}.
 * @return the self-reference.//from w  w w  .jav a 2  s  . c o  m
 */
public AppiumServiceBuilder withCapabilities(DesiredCapabilities capabilities) {
    if (this.capabilities == null) {
        this.capabilities = capabilities;
    } else {
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.merge(this.capabilities).merge(capabilities);
        this.capabilities = desiredCapabilities;
    }
    return this;
}

From source file:com.opera.core.systems.OperaSettings.java

License:Apache License

/**
 * Returns this as capabilities.  This does not copy the settings.  Further changes will be
 * reflected in the capabilities.//w  w w . j  av a2 s.  com
 *
 * @return Capabilities for Opera with these settings
 */
public Capabilities toCapabilities() {
    DesiredCapabilities capabilities = DesiredCapabilities.opera();

    for (CapabilityInstance option : options.values()) {
        if (option.getValue() == null) {
            continue;
        }

        capabilities.setCapability(option.getCapability(), option.getValue());
    }

    return capabilities.merge(surplusCapabilities);
}

From source file:com.saucelabs.sauce_ondemand.driver.SauceOnDemandSPIImpl.java

License:Open Source License

@Override
public WebDriver createWebDriver(SeleniumFactory factory, String browserURL, DesiredCapabilities capabilities) {

    String uri = factory.getUri();
    if (!uri.startsWith(SCHEME))
        return null; // not ours

    uri = uri.substring(SCHEME.length());
    if (!uri.startsWith("?"))
        throw new IllegalArgumentException("Missing '?':" + factory.getUri());

    // massage parameter into JSON format
    Map<String, List<String>> paramMap = populateParameterMap(uri);

    DesiredCapabilities desiredCapabilities;
    if (hasParameter(paramMap, OS) && hasParameter(paramMap, BROWSER)
            && hasParameter(paramMap, BROWSER_VERSION)) {
        String browser = getFirstParameter(paramMap, BROWSER);
        desiredCapabilities = new DesiredCapabilities(capabilities);
        desiredCapabilities.setBrowserName(browser);
        desiredCapabilities.setVersion(getFirstParameter(paramMap, BROWSER_VERSION));
        desiredCapabilities.setCapability(CapabilityType.PLATFORM, getFirstParameter(paramMap, OS));
        if (browser.equals("firefox")) {
            setFirefoxProfile(paramMap, desiredCapabilities);
        }/*  w  ww. jav  a  2 s. co m*/
    } else {
        //use Firefox as a default
        desiredCapabilities = capabilities;
        desiredCapabilities.merge(DesiredCapabilities.firefox());
        setFirefoxProfile(paramMap, desiredCapabilities);
    }
    String host = readPropertyOrEnv(SELENIUM_HOST, DEFAULT_WEBDRIVER_HOST);

    String portAsString = readPropertyOrEnv(SELENIUM_PORT, null);

    if (portAsString == null || portAsString.equals("")) {
        portAsString = DEFAULT_WEBDRIVER_PORT;
    }

    try {
        WebDriver driver = new RemoteWebDriverImpl(
                new URL(MessageFormat.format("http://{2}:{3}@{0}:{1}/wd/hub", host, portAsString,
                        getFirstParameter(paramMap, USERNAME), getFirstParameter(paramMap, ACCESS_KEY))),
                desiredCapabilities,
                new Credential(getFirstParameter(paramMap, USERNAME), getFirstParameter(paramMap, ACCESS_KEY)),
                getFirstParameter(paramMap, "job-name"));
        if (browserURL != null) {
            driver.get(browserURL);
        }
        return driver;
    } catch (MalformedURLException e) {
        throw new IllegalArgumentException("Invalid URL: " + factory.getUri(), e);
    }
}

From source file:com.saucelabs.selenium.client.factory.impl.DefaultSeleniumSPIImpl.java

License:Open Source License

@Override
public WebDriver createWebDriver(SeleniumFactory factory, String browserURL, DesiredCapabilities capabilities) {
    if (!canHandle(factory.getUri()))
        return null; // doesn't belong to us

    try {//from   w  ww  .  j  a v  a2  s .  c  o m
        URL url = new URL(factory.getUri());

        // since the browser start command parameter can contain arbitrary character that may
        // potentially interfere with the rules of the URL, allow the user to specify it through a property.
        String browserStartCommand = (String) factory.getProperty("browserStartCommand");
        if (browserStartCommand == null)
            // getPath starts with '/', so trim it off
            // do URL decode, so that arbitrary strings can be passed in.
            browserStartCommand = URLDecoder.decode(url.getPath().substring(1), "UTF-8");

        //todo translate browserStartCommand to DesiredCapabilities

        DesiredCapabilities desiredCapabilities = capabilities;
        desiredCapabilities.merge(DesiredCapabilities.firefox());
        WebDriver driver = new RemoteWebDriver(url, desiredCapabilities);
        if (browserURL != null) {
            driver.get(browserURL);
        }
        return driver;
    } catch (MalformedURLException e) {
        throw new IllegalArgumentException("Invalid URL: " + factory.getUri(), e);
    } catch (UnsupportedEncodingException e) {
        // impossible
        throw new Error(e);
    }
}

From source file:com.seleniumtests.browserfactory.IMobileCapabilityFactory.java

License:Apache License

@Override
public MutableCapabilities createCapabilities() {

    String app = webDriverConfig.getApp().trim();

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, getAutomationName());

    if (app != null && !"".equals(app.trim())) {
        if (webDriverConfig.isFullReset()) {
            capabilities.setCapability(MobileCapabilityType.FULL_RESET, "true");
        } else {/*  ww w  .  ja  v  a  2 s  .c  o m*/
            capabilities.setCapability(MobileCapabilityType.FULL_RESET, "false");
        }
    }

    // Set up version and device name else appium server would pick the only available emulator/device
    // Both of these are ignored for android for now
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, webDriverConfig.getPlatform());
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,
            webDriverConfig.getMobilePlatformVersion());
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, webDriverConfig.getDeviceName());
    capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT,
            webDriverConfig.getNewCommandTimeout());

    // in case app has not been specified for cloud provider
    if (capabilities.getCapability(MobileCapabilityType.APP) == null && app != null && !app.isEmpty()) {
        capabilities.setCapability(MobileCapabilityType.APP, app.replace("\\", "/"));
    }

    // do not configure application and browser as they are mutualy exclusive
    if (app == null || app.isEmpty() && webDriverConfig.getBrowser() != BrowserType.NONE) {
        capabilities.setCapability(CapabilityType.BROWSER_NAME,
                webDriverConfig.getBrowser().toString().toLowerCase());
        capabilities.merge(getBrowserSpecificCapabilities());
    } else {
        capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
    }

    // add node tags
    if (webDriverConfig.getNodeTags().size() > 0 && webDriverConfig.getMode() == DriverMode.GRID) {
        capabilities.setCapability(SeleniumRobotCapabilityType.NODE_TAGS, webDriverConfig.getNodeTags());
    }

    // add OS specific capabilities
    capabilities.merge(getSystemSpecificCapabilities());

    return capabilities;
}

From source file:com.vaadin.demo.testutil.AbstractDemoTest.java

License:Apache License

/**
 * Sets up the test to run using Phantom JS with the additional capabilities
 * specified.//from   www. j av  a 2 s  .co m
 *
 * @param extraCapabilities
 *            additional capabilities to pass to the driver
 */
protected void setupPhantomJsDriver(Capabilities extraCapabilities) {
    DesiredCapabilities cap = DesiredCapabilities.phantomjs();
    cap.merge(extraCapabilities);
    FixedPhantomJSDriver driver = new FixedPhantomJSDriver(cap);
    setDriver(driver);
    driver.setTestBenchDriverProxy(getDriver());
}

From source file:de.learnlib.alex.learning.entities.webdrivers.RemoteDriverConfig.java

License:Apache License

@Override
public WebDriver createDriver() throws Exception {
    final URL remoteURL = new URL(System.getProperty("webdriver.remote.url"));

    final DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setPlatform(platform);/*  w ww .  j  av  a 2 s .  c  o  m*/
    capabilities.setBrowserName(browser);

    switch (browser) {
    case "chrome":
        final ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.setHeadless(headless);
        capabilities.merge(chromeOptions);
        break;
    case "firefox":
        final FirefoxOptions firefoxOptions = new FirefoxOptions();
        firefoxOptions.setHeadless(headless);
        capabilities.merge(firefoxOptions);
        break;
    default:
        break;
    }

    if (!version.trim().equals("")) {
        capabilities.setVersion(version);
    }

    final WebDriver driver = new RemoteWebDriver(remoteURL, capabilities);
    manage(driver);
    return driver;
}

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

License:Open Source License

public Locomotive() {
    final Properties props = new Properties();
    try {/* ww w.  jav  a 2s.c om*/
        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);
}