WebDriver create()

in module/geb-core/src/main/groovy/geb/driver/CloudDriverFactory.groovy [35:60]


    WebDriver create(String specification, String username, String key, Map<String, Object> additionalCapabilities = [:]) {
        def remoteDriverOperations = new RemoteDriverOperations(getClass().classLoader)
        Class<? extends WebDriver> remoteWebDriverClass = remoteDriverOperations
            .optionalRemoteWebDriverClass
            .orElseThrow {
                def message = 'org.openqa.selenium.remote.RemoteWebDriver needs to be on the classpath to create ' +
                    'RemoteWebDriver instances'
                throw new ClassNotFoundException(message)
            }

        def url = new URL(assembleProviderUrl(username, key))

        Properties capabilities = new Properties()
        if (specification) {
            capabilities.load(new StringReader(specification))
        }
        capabilities.putAll(additionalCapabilities)

        def desiredCapabilities = remoteDriverOperations.softLoadRemoteDriverClass('DesiredCapabilities').getConstructor().newInstance()
        configureCapabilities(username, key, desiredCapabilities)
        capabilities.each { capability, value ->
            desiredCapabilities.setCapability(capability, value)
        }

        remoteWebDriverClass.getConstructor(URL, Capabilities).newInstance(url, makeW3cCompliant(desiredCapabilities))
    }