Class RemoteWebDriverBuilder


  • @Beta
    public class RemoteWebDriverBuilder
    extends java.lang.Object
    Create a new Selenium session using the W3C WebDriver protocol. This class will not generate any data expected by the original JSON Wire Protocol, so will fail to create sessions as expected if used against a server that only implements that protocol.

    Expected usage is something like:

       WebDriver driver = RemoteWebDriver.builder()
         .addAlternative(new FirefoxOptions())
         .addAlternative(new ChromeOptions())
         .addMetadata("cloud:key", "hunter2")
         .setCapability("proxy", new Proxy())
         .build();
     
    In this example, we ask for a session where the browser will be either Firefox or Chrome (we don't care which), but where either browser will use the given Proxy. In addition, we've added some metadata to the session, setting the "cloud.key" to be the secret passphrase of our account with the cloud "Selenium as a Service" provider.

    If no call to withDriverService(DriverService) or url(URL) is made, the builder will use ServiceLoader to find all instances of DriverService.Builder and will call DriverService.Builder.score(Capabilities) for each alternative until a new session can be created.

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      RemoteWebDriverBuilder addAlternative​(org.openqa.selenium.Capabilities options)
      Add to the list of possible configurations that might be asked for.
      RemoteWebDriverBuilder addMetadata​(java.lang.String key, java.lang.Object value)
      Adds metadata to the outgoing new session request, which can be used by intermediary of end nodes for any purpose they choose (commonly, this is used to request additional features from cloud providers, such as video recordings or to set the timezone or screen size).
      org.openqa.selenium.WebDriver build()
      Actually create a new WebDriver session.
      RemoteWebDriverBuilder oneOf​(org.openqa.selenium.Capabilities maybeThis, org.openqa.selenium.Capabilities... orOneOfThese)
      Clears the current set of alternative browsers and instead sets the list of possible choices to the arguments given to this method.
      RemoteWebDriverBuilder setCapability​(java.lang.String capabilityName, java.lang.String value)
      Sets a capability for every single alternative when the session is created.
      RemoteWebDriverBuilder url​(java.lang.String url)  
      RemoteWebDriverBuilder url​(java.net.URL url)
      Set the URL of the remote server.
      RemoteWebDriverBuilder withDriverService​(DriverService service)
      Use the given DriverService to set up the webdriver instance.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • oneOf

        public RemoteWebDriverBuilder oneOf​(org.openqa.selenium.Capabilities maybeThis,
                                            org.openqa.selenium.Capabilities... orOneOfThese)
        Clears the current set of alternative browsers and instead sets the list of possible choices to the arguments given to this method.
      • addAlternative

        public RemoteWebDriverBuilder addAlternative​(org.openqa.selenium.Capabilities options)
        Add to the list of possible configurations that might be asked for. It is possible to ask for more than one type of browser per session. For example, perhaps you have an extension that is available for two different kinds of browser, and you'd like to test it).
      • addMetadata

        public RemoteWebDriverBuilder addMetadata​(java.lang.String key,
                                                  java.lang.Object value)
        Adds metadata to the outgoing new session request, which can be used by intermediary of end nodes for any purpose they choose (commonly, this is used to request additional features from cloud providers, such as video recordings or to set the timezone or screen size). Neither parameter can be null.
      • url

        public RemoteWebDriverBuilder url​(java.net.URL url)
        Set the URL of the remote server. If this URL is not set, then it assumed that a local running remote webdriver session is needed. It is an error to call this method and also withDriverService(DriverService).
      • build

        public org.openqa.selenium.WebDriver build()
        Actually create a new WebDriver session. The returned webdriver is not guaranteed to be a RemoteWebDriver.