Fork me on GitHub

webdriverextensions:install-drivers

Full name:

com.github.webdriverextensions:webdriverextensions-maven-plugin:4.0.0:install-drivers

Description:

Download and install WebDriver drivers.

Attributes:

  • Requires a Maven project to be executed.
  • The goal is not marked as thread-safe and thus does not support parallel builds.
  • Binds by default to the lifecycle phase: generate-sources.
  • Requires that Maven runs in online mode.

Optional Parameters

Name Type Since Description
<downloadConnectTimeout> int 3.3.0 Determines the timeout in seconds until a new connection is fully established.
A timeout value of zero is interpreted as an infinite timeout.
Default: 30
User Property: webdriverextensions.download.connectTimeout
<downloadMaxRetries> int 3.3.0 Number of retry attempts to download a driver.
A value of zero means no retries.
Retriable HTTP status codes are 429 and 503.
Retries may also happen for the following exceptions:
  • InterruptedIOException
  • UnknownHostException
  • ConnectException
  • ConnectionClosedException
  • NoRouteToHostException
  • SSLException

Default: 3
User Property: webdriverextensions.download.maxRetries
<downloadResponseTimeout> int 3.3.0 Determines the timeout in seconds until arrival of a response from the download host.
A timeout value of zero is interpreted as an infinite timeout.
Default: 1800
User Property: webdriverextensions.download.responseTimeout
<downloadRetryDelay> int 3.3.0 retry interval in seconds between subsequent retries. The interval must not be greater than downloadResponseTimeout otherwise no retry attempt will be made at all!
Default: 3
User Property: webdriverextensions.download.retryDelay
<drivers> List<Driver> - List of drivers to install. Each driver has a name, platform, bit, version and URL that can be provided.

If no drivers are provided the latest drivers will be installed for the running platform and the bit version will be chosen as if it has not been provided (see rule below).

If no platform is provided for a driver the platform will automatically be set to the running platform.

If no bit version is provided for a driver the bit will automatically be set to 32 if running the plugin on a windows or mac platform. However if running the plugin from a linux platform the bit will be determined from the OS bit version.

If the driver is not available in the repository the plugin does not know from which URL to download the driver. In that case the URL should be provided for the driver. The default repository with all available drivers can be found here.

Some Examples
Installing all latest drivers
<drivers>
  <driver>
    <name>chromedriver</name>
    <platform>windows</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>chromedriver</name>
    <platform>mac</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>chromedriver</name>
    <platform>linux</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>chromedriver</name>
    <platform>linux</platform>
    <bit>64</bit>
  </driver>
  <driver>
    <name>internetexplorerdriver</name>
    <platform>windows</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>internetexplorerdriver</name>
    <platform>windows</platform>
    <bit>64</bit>
  </driver>
</drivers>

Installing a driver not available in the repository, e.g. PhantomJS
<driver>
  <name>phanthomjs</name>
  <platform>mac</platform>
  <bit>32</bit>
  <version>1.9.7</version>
  <url>http://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-macosx.zip</url>
</driver>
<installationDirectory> File - The path to the directory where the drivers are going to be installed.
Default: ${basedir}/drivers
User Property: webdriverextensions.installDirectory
<keepDownloadedWebdrivers> boolean 2.0.0 Keep downloaded files as local cache.
If set to true, one should also provide a known and non-random value for pluginWorkingDirectory!
Default: false
User Property: webdriverextensions.download.keepFiles
<pluginWorkingDirectory> File 3.3.0 The working directory where downloaded drivers will be saved until they are moved to installationDirectory.
This defaults to a random temporary directory prefixed with webdriverextensions-maven-plugin below the default temporary-file directory (java.io.tmpdir).
User Property: webdriverextensions.workingDirectory
<proxyId> String 1.1.0 The id of the proxy to use if it is configured in settings.xml. If not provided the first active proxy in settings.xml will be used.
User Property: webdriverextensions.proxyId
<repositoryUrl> URL - URL to where the repository file is located. The repository file is a json file containing information of available drivers and their locations etc. Supported protocols are: http, https and file. The content of the file must validate against the drivers repository JSON schema.
Default: https://raw.githubusercontent.com/webdriverextensions/webdriverextensions-maven-plugin-repository/master/repository-3.0.json
User Property: webdriverextensions.repoUrl
<setWebdriverPath> boolean 3.3.0 Sets the webdriver properties with the path to the downloaded/installed drivers.
This setting should not be used if these properties are set elsewhere (e.g. with "systemPropertyVariables") because they will be overwritten!
For custom defined drivers: the driver name should start with one of the known prefixes ("chrome", "chromium", "edge", "firefox", "gecko", "opera", "internetexplorer"), otherwise the plugin will not know which property to set.
Default: false
User Property: webdriverextensions.setWebdriverPath
<skip> boolean - Skips installation of drivers. Execution will also be skipped if one of the following properties is true:
  • skipTests
  • skipITs
  • maven.test.skip

Default: false
User Property: webdriverextensions.skip
<skipIgnore> boolean 3.3.0 Do not skip execution even if one of the skip-properties (see skip) is true. This is useful for downloading drivers even when test execution is skipped.
Default: false
User Property: webdriverextensions.skipIgnore

Parameter Details

<downloadConnectTimeout>

Determines the timeout in seconds until a new connection is fully established.
A timeout value of zero is interpreted as an infinite timeout.
  • Type: int
  • Since: 3.3.0
  • Required: No
  • User Property: webdriverextensions.download.connectTimeout
  • Default: 30

<downloadMaxRetries>

Number of retry attempts to download a driver.
A value of zero means no retries.
Retriable HTTP status codes are 429 and 503.
Retries may also happen for the following exceptions:
  • InterruptedIOException
  • UnknownHostException
  • ConnectException
  • ConnectionClosedException
  • NoRouteToHostException
  • SSLException
  • Type: int
  • Since: 3.3.0
  • Required: No
  • User Property: webdriverextensions.download.maxRetries
  • Default: 3

<downloadResponseTimeout>

Determines the timeout in seconds until arrival of a response from the download host.
A timeout value of zero is interpreted as an infinite timeout.
  • Type: int
  • Since: 3.3.0
  • Required: No
  • User Property: webdriverextensions.download.responseTimeout
  • Default: 1800

<downloadRetryDelay>

retry interval in seconds between subsequent retries. The interval must not be greater than downloadResponseTimeout otherwise no retry attempt will be made at all!
  • Type: int
  • Since: 3.3.0
  • Required: No
  • User Property: webdriverextensions.download.retryDelay
  • Default: 3

<drivers>

List of drivers to install. Each driver has a name, platform, bit, version and URL that can be provided.

If no drivers are provided the latest drivers will be installed for the running platform and the bit version will be chosen as if it has not been provided (see rule below).

If no platform is provided for a driver the platform will automatically be set to the running platform.

If no bit version is provided for a driver the bit will automatically be set to 32 if running the plugin on a windows or mac platform. However if running the plugin from a linux platform the bit will be determined from the OS bit version.

If the driver is not available in the repository the plugin does not know from which URL to download the driver. In that case the URL should be provided for the driver. The default repository with all available drivers can be found here.

Some Examples
Installing all latest drivers
<drivers>
  <driver>
    <name>chromedriver</name>
    <platform>windows</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>chromedriver</name>
    <platform>mac</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>chromedriver</name>
    <platform>linux</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>chromedriver</name>
    <platform>linux</platform>
    <bit>64</bit>
  </driver>
  <driver>
    <name>internetexplorerdriver</name>
    <platform>windows</platform>
    <bit>32</bit>
  </driver>
  <driver>
    <name>internetexplorerdriver</name>
    <platform>windows</platform>
    <bit>64</bit>
  </driver>
</drivers>

Installing a driver not available in the repository, e.g. PhantomJS
<driver>
  <name>phanthomjs</name>
  <platform>mac</platform>
  <bit>32</bit>
  <version>1.9.7</version>
  <url>http://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-macosx.zip</url>
</driver>
  • Type: java.util.List<com.github.webdriverextensions.Driver>
  • Required: No

<installationDirectory>

The path to the directory where the drivers are going to be installed.
  • Type: java.io.File
  • Required: No
  • User Property: webdriverextensions.installDirectory
  • Default: ${basedir}/drivers

<keepDownloadedWebdrivers>

Keep downloaded files as local cache.
If set to true, one should also provide a known and non-random value for pluginWorkingDirectory!
  • Type: boolean
  • Since: 2.0.0
  • Required: No
  • User Property: webdriverextensions.download.keepFiles
  • Default: false

<pluginWorkingDirectory>

The working directory where downloaded drivers will be saved until they are moved to installationDirectory.
This defaults to a random temporary directory prefixed with webdriverextensions-maven-plugin below the default temporary-file directory (java.io.tmpdir).
  • Type: java.io.File
  • Since: 3.3.0
  • Required: No
  • User Property: webdriverextensions.workingDirectory

<proxyId>

The id of the proxy to use if it is configured in settings.xml. If not provided the first active proxy in settings.xml will be used.
  • Type: java.lang.String
  • Since: 1.1.0
  • Required: No
  • User Property: webdriverextensions.proxyId

<repositoryUrl>

URL to where the repository file is located. The repository file is a json file containing information of available drivers and their locations etc. Supported protocols are: http, https and file. The content of the file must validate against the drivers repository JSON schema.
  • Type: java.net.URL
  • Required: No
  • User Property: webdriverextensions.repoUrl
  • Default: https://raw.githubusercontent.com/webdriverextensions/webdriverextensions-maven-plugin-repository/master/repository-3.0.json

<setWebdriverPath>

Sets the webdriver properties with the path to the downloaded/installed drivers.
This setting should not be used if these properties are set elsewhere (e.g. with "systemPropertyVariables") because they will be overwritten!
For custom defined drivers: the driver name should start with one of the known prefixes ("chrome", "chromium", "edge", "firefox", "gecko", "opera", "internetexplorer"), otherwise the plugin will not know which property to set.
  • Type: boolean
  • Since: 3.3.0
  • Required: No
  • User Property: webdriverextensions.setWebdriverPath
  • Default: false

<skip>

Skips installation of drivers. Execution will also be skipped if one of the following properties is true:
  • skipTests
  • skipITs
  • maven.test.skip
  • Type: boolean
  • Required: No
  • User Property: webdriverextensions.skip
  • Default: false

<skipIgnore>

Do not skip execution even if one of the skip-properties (see skip) is true. This is useful for downloading drivers even when test execution is skipped.
  • Type: boolean
  • Since: 3.3.0
  • Required: No
  • User Property: webdriverextensions.skipIgnore
  • Default: false