Example usage for org.openqa.selenium MutableCapabilities setCapability

List of usage examples for org.openqa.selenium MutableCapabilities setCapability

Introduction

In this page you can find the example usage for org.openqa.selenium MutableCapabilities setCapability.

Prototype

@Override
    public void setCapability(String key, Object value) 

Source Link

Usage

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

License:Apache License

private void extractAndroidDriver(MutableCapabilities capabilities) {
    String chromeDriverFile = (String) capabilities
            .getCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE);
    if (chromeDriverFile != null) {
        String driverPath;//w  w  w  . j a v a  2  s . co m
        try {
            driverPath = FileUtility.decodePath(new DriverExtractor().extractDriver(chromeDriverFile));
            capabilities.setCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE, driverPath);
        } catch (UnsupportedEncodingException e) {
            logger.error("cannot get driver path", e);
        }

    }
}

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

License:Apache License

public MutableCapabilities createCapabilities() {
    MutableCapabilities options = getDriverOptions();
    options = options.merge(updateDefaultCapabilities());

    if (webDriverConfig.getMode() == DriverMode.LOCAL) {
        try {//from ww w  .  j  a  va2  s. c  om
            prepareBinaryAndDriver(getBrowserType(), getBrowserBinaryPath(), getDriverPath(),
                    webDriverConfig.getBrowserVersion());

            updateOptionsWithSelectedBrowserInfo(options);
        } catch (UnsupportedEncodingException e) {
        }
    }

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

    return options;
}

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

License:Apache License

/**
 * Add proxy capability/*from www  .j a  va  2 s.c o m*/
 * If network capture is enabled, start browsermob proxy and set it into browser
 * @param capability
 */
private void configureProxyCap(MutableCapabilities capability) {
    Proxy proxy = webDriverConfig.getProxy();

    if (webDriverConfig.getCaptureNetwork()) {

        if (webDriverConfig.getWebProxyType() != ProxyType.DIRECT
                && webDriverConfig.getWebProxyType() != ProxyType.MANUAL) {
            throw new ConfigurationException(
                    "PAC/AUTODETECT/SYSTEM proxy cannot be used with browsermob proxy");
        }

        BrowserMobProxy mobProxy = new BrowserMobProxyServer();

        if (webDriverConfig.getWebProxyType() == ProxyType.MANUAL) {
            mobProxy.setChainedProxy(new InetSocketAddress(webDriverConfig.getWebProxyAddress(),
                    webDriverConfig.getWebProxyPort()));

            if (webDriverConfig.getWebProxyLogin() != null && webDriverConfig.getWebProxyPassword() != null) {
                mobProxy.chainedProxyAuthorization(webDriverConfig.getWebProxyLogin(),
                        webDriverConfig.getWebProxyPassword(), AuthType.BASIC);
            }
        }
        mobProxy.setTrustAllServers(true);
        mobProxy.enableHarCaptureTypes(CaptureType.REQUEST_CONTENT, CaptureType.REQUEST_HEADERS,
                CaptureType.RESPONSE_HEADERS);
        mobProxy.start(0);
        Proxy seleniumProxy = ClientUtil.createSeleniumProxy(mobProxy);

        capability.setCapability(CapabilityType.PROXY, seleniumProxy);
        webDriverConfig.setBrowserMobProxy(mobProxy);
    } else {
        capability.setCapability(CapabilityType.PROXY, proxy);
    }
}

From source file:com.seleniumtests.browserfactory.mobile.MobileDeviceSelector.java

License:Apache License

/**
 * From input capabilities, (e.g: platform, version or device real name), update capabilities 
 * with deviceName, platform, version, or other useful data
 * @param capabilities/* ww w. j av a  2 s.co  m*/
 * @return
 */
public MutableCapabilities updateCapabilitiesWithSelectedDevice(MutableCapabilities capabilities,
        DriverMode driverMode) {
    MobileDevice selectedDevice = getRelevantMobileDevice(capabilities);

    if ("android".equals(selectedDevice.getPlatform())) {
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, selectedDevice.getId());

        // set the right chromedriver executable according to android browser / chromeversion
        // it's only the file name, not it's path
        if (driverMode == DriverMode.LOCAL && !capabilities.getBrowserName().isEmpty()) {
            String chromeDriverFile = null;
            if (BrowserType.CHROME.toString().equalsIgnoreCase(capabilities.getBrowserName())) {
                chromeDriverFile = selectedDevice.getBrowserInfo(BrowserType.CHROME).getDriverFileName();
            } else if (BrowserType.BROWSER.toString().equalsIgnoreCase(capabilities.getBrowserName())) {
                chromeDriverFile = selectedDevice.getBrowserInfo(BrowserType.BROWSER).getDriverFileName();
            }
            if (chromeDriverFile != null) {
                // driver extraction will be done later. For example in AppiumDriverFactory
                capabilities.setCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE,
                        chromeDriverFile);
            }
        }

    } else if ("ios".equalsIgnoreCase(selectedDevice.getPlatform())) {
        capabilities.setCapability(MobileCapabilityType.UDID, selectedDevice.getId());
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, selectedDevice.getName());
        capabilities.setCapability(IOSMobileCapabilityType.XCODE_CONFIG_FILE, System.getenv("APPIUM_HOME")
                + "/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/xcodeConfigFile.xcconfig");
    }
    capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, selectedDevice.getPlatform());
    capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, selectedDevice.getVersion());

    return capabilities;
}