Class HtmlUnitDriverOptions

  • All Implemented Interfaces:
    Serializable, org.openqa.selenium.Capabilities

    public class HtmlUnitDriverOptions
    extends org.openqa.selenium.remote.AbstractDriverOptions<HtmlUnitDriverOptions>
    Class to manage options specific to HtmlUnitDriver.

    Example usage:

    
     HtmlUnitDriverOptions options = new HtmlUnitDriverOptions()
         .setWebClientVersion(BrowserVersion.FIREFOX_ESR)
         .setJavaScriptEnabled(true);
    
     // For use with HtmlUnitDriver:
     HtmlUnitDriver driver = new HtmlUnitDriver(options);
    
     // For use with RemoteWebDriver:
     RemoteWebDriver driver = new RemoteWebDriver(
         new URL("http://localhost:4444/"),
         new HtmlUnitDriverOptions());
     

    Getting/setting HtmlUnitDriver options:

    In addition to methods for reading and writing specific HtmlUnitDriver options, you can use the standard MutableCapabilities API:

    Example usage:

    
     HtmlUnitDriverOptions options = new HtmlUnitDriverOptions();
     boolean popupBlockerEnabled = options.is(HtmlUnitOption.optPopupBlockerEnabled);
     // NOTE: See "Getting individual browser version traits" below
     String  browserLanguage = (String) options.getCapability(BrowserVersionTrait.optBrowserLanguage);
     options.setCapability(HtmlUnitOption.optGeolocationEnabled, true);
     

    Getting individual browser version traits:

    HtmlUnitDriverOption contains a BrowserVersion which can be read and written directly:

    The individual traits of the BrowserVersion object can be read directly as well via the standard Capabilities API. For example:
    
     HtmlUnitDriverOptions options = new HtmlUnitDriverOptions(BrowserVersion.EDGE);
     // System time zone accessed via BrowserVersion API
     TimeZone viaBrowserVersion = options.getWebClientVersion.getSystemTimezone();
     // System time zone accessed via standard Capabilities API
     TimeZone viaCapabilityName = (TimeZone) options.getCapability(BrowserVersionTrait.optSystemTimezone);
     
    NOTE: Although HtmlUnitDriverOptions objects are mutable (their properties can be altered), the individual traits of the BrowserVersion object within these objects cannot be altered:
    
     HtmlUnitDriverOptions options = new HtmlUnitDriverOptions(BrowserVersion.CHROME);
     options.setCapability(BrowserVersionTrait.optUserAgent, "HtmlUnitDriver emulating Google Chrome");
     // => UnsupporterOperationException: Individual browser version traits are immutable; 'optUserAgent' cannot be set
     
    Since:
    HtmlUnitDriver v4.22.0
    Author:
    Scott Babcock, Ronald Brill
    See Also:
    HtmlUnitOption, BrowserVersionTrait, Serialized Form
    • Field Detail

      • HTMLUNIT_OPTIONS

        public static final String HTMLUNIT_OPTIONS
        Key used to store a set of HtmlUnitDriverOptions in a Capabilities object.
        See Also:
        Constant Field Values
    • Constructor Detail

      • HtmlUnitDriverOptions

        public HtmlUnitDriverOptions()
      • HtmlUnitDriverOptions

        public HtmlUnitDriverOptions​(BrowserVersion version)
      • HtmlUnitDriverOptions

        public HtmlUnitDriverOptions​(BrowserVersion version,
                                     boolean enableJavascript)
      • HtmlUnitDriverOptions

        public HtmlUnitDriverOptions​(org.openqa.selenium.Capabilities source)
      • HtmlUnitDriverOptions

        public HtmlUnitDriverOptions​(Map<String,​Object> optionsMap)
    • Method Detail

      • getCapability

        public Object getCapability​(String capabilityName)
        Specified by:
        getCapability in interface org.openqa.selenium.Capabilities
        Overrides:
        getCapability in class org.openqa.selenium.remote.AbstractDriverOptions<HtmlUnitDriverOptions>
      • setCapability

        public void setCapability​(String capabilityName,
                                  Object value)
        Overrides:
        setCapability in class org.openqa.selenium.MutableCapabilities
      • getExtraCapabilityNames

        protected Set<String> getExtraCapabilityNames()
        Specified by:
        getExtraCapabilityNames in class org.openqa.selenium.remote.AbstractDriverOptions<HtmlUnitDriverOptions>
      • getExtraCapability

        protected Object getExtraCapability​(String capabilityName)
        Specified by:
        getExtraCapability in class org.openqa.selenium.remote.AbstractDriverOptions<HtmlUnitDriverOptions>
      • applyOptions

        public void applyOptions​(WebClientOptions target)
        Apply values from this HtmlUnitDriver options object to the specifies target.
        Parameters:
        target - target WebClientOptions object
      • isJavaScriptEnabled

        public boolean isJavaScriptEnabled()
      • isDownloadImages

        public boolean isDownloadImages()
      • setSSLClientCertificateKeyStore

        public HtmlUnitDriverOptions setSSLClientCertificateKeyStore​(KeyStore keyStore,
                                                                     char[] keyStorePassword)