Skip to content

Commit

Permalink
Update asciidoc source for version 5.7.0
Browse files Browse the repository at this point in the history
  • Loading branch information
bonigarcia committed Feb 21, 2024
1 parent a374ae2 commit d658fc2
Showing 1 changed file with 1 addition and 4 deletions.
5 changes: 1 addition & 4 deletions src/doc/asciidoc/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ TIP: Although not mandatory, it is highly recommended to use a logger library to
WebDriverManager executes a _resolution algorithm_ when calling to `setup()` in a given manager. You can find all its internal details in the paper https://link.springer.com/article/10.1007/s10664-021-09975-3[Automated driver management for Selenium WebDriver], published in the Springer Journal of Empirical Software Engineering in 2021. The most relevant parts of this algorithm are the following:

1. WebDriverManager tries to find the browser version. To this aim, WebDriverManager uses internally a knowledge database called https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/commands.properties[commands database]. This database is a collection of shell commands used to discover the version of a given browser in the different operating systems (e.g., `google-chrome --version` for Chrome in Linux).
2. Using the browser version, WebDriverManager tries to find the proper driver version. This process is different for each browser. In Chrome and Edge, their respective drivers (chromedriver and msedgedriver) maintainers also publish resources to identify the suitable driver version for a given major browser release. For instance, to find out the version of chromedriver required for Chrome 89, we need to read the following https://chromedriver.storage.googleapis.com/LATEST_RELEASE_89[file]. Unfortunately, this information is not available in other browsers (e.g., Firefox and Opera) or older versions of Chrome and Firefox. For this reason, WebDriverManager uses another knowledge database called https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/versions.properties[versions database]. This database maps the browser releases with the known compatible driver versions.
2. Using the browser version, WebDriverManager tries to find the proper driver version. This process is different for each browser. For chromedriver, the https://github.com/GoogleChromeLabs/chrome-for-testing[Chrome for Testing (CfT) endpoints] are used. For geckodriver, the https://raw.githubusercontent.com/SeleniumHQ/selenium/trunk/common/geckodriver/geckodriver-support.json[Firefox mapping maintained by the Selenium project] (which is based on the https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html[official geckodriver support]). For msedgedriver, the https://msedgedriver.azureedge.net/[Edge metadata] is used.
3. Once the driver version is discovered, WebDriverManager downloads this driver to a local cache (located at `~/.cache/selenium` by default). These drivers are reused in subsequent calls.
4. Finally, WebDriverManager exports the driver path using Java system properties (e.g., `webdriver.chrome.driver` in the case of the Chrome manager).

Expand Down Expand Up @@ -660,15 +660,12 @@ HTTP proxy. It can be also configured using the environment variable `HTTPS_PRO
|`avoidOutputTree()`|`wdm.avoidOutputTree=true`|`false` (create output tree in the driver cache, e.g., `chromedriver/linux64/2.37`|Avoid output tree (for instance, in the <<webdrivermanager-cli,CLI>> mode)
|`avoidFallback()`|`wdm.avoidFallback=true`|`false` (use a retries mechanism if any problem happens during the resolution algorithm)|Avoid the fallback mechanism
|`avoidBrowserDetection()`|`wdm.avoidBrowserDetection` `=true`|`false` (browser version is detected, and the corresponding driver version s discovered)|Force to use the latest version available for a given driver
|`avoidReadReleaseFrom` `Repository()`|`wdm.avoidReadReleaseFrom` `Repository=true`|`false` (discover driver relase using info from the repository, e.g., https://chromedriver.storage.googleapis.com/LATEST_RELEASE[chromedriver-latest] or https://msedgedriver.azureedge.net/LATEST_STABLE[msedgedriver-latest])|Avoid using the repository info and use the https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/versions.properties[versions database] instead
|`avoidTmpFolder()`|`wdm.avoidTmpFolder=true`|`false` (Each driver release (typically compressed) is copied in a temporal folder in the local machine, and then the driver is extracted and copied to the driver cache|Avoid using a temporal folder to download drivers (and handle driver release directly on driver cache)
|`avoidShutdownHook()`|`wdm.avoidShutdownHook=true`|`false`|Avoid shutdown hook for drivers objected created with `create()`
|`avoidExternalConnections()`|`wdm.avoidExternalConnections=true`|`false`|Avoid connections to external urls, useful when downloading webdrivers from an artifact storage in an intranet
|`browserVersionDetection` `Command(String)`|`wdm.browserVersion` `DetectionCommand`|`""` (automatic discovery using the https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/commands.properties[commands database])|Custom browser version detection command (see example https://github.com/bonigarcia/webdrivermanager/blob/master/src/test/java/io/github/bonigarcia/wdm/test/chrome/ChromeBetaTest.java[here])
|`browserVersionDetection` `Regex(String)`|`wdm.browserVersion` `DetectionRegex`|`[\^\\d\^\\.]`|Regular expression used to extract the browser version from the shell
|`useLocalVersionsProperties` `First()`|`wdm.versionsProperties` `OnlineFirst=true`|`false` (the online https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/versions.properties[versions database] is used in the <<resolution-algorithm,resolution algorithm>>)|Use local copy of the versions database
|`useLocalCommandsProperties` `First()`|`wdm.commandsProperties` `OnlineFirst=true`|`false` (the online https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/versions.properties[commands database] is used in the <<resolution-algorithm,resolution algorithm>>)|Use local copy of the commands database
|`versionsPropertiesUrl(URL)`|`wdm.versionsPropertiesUrl`|Raw version of the online https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/versions.properties[versions database]|Change versions database URL
|`commandsPropertiesUrl(URL)`|`wdm.commandsPropertiesUrl`|Raw version of the online https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/commands.properties[commands database]|Change commands database URL
|`clearDriverCache()`|`wdm.clearDriverCache=true`|`false` (not cleaning driver cache)|Clean driver cache
|`clearResolutionCache()`|`wdm.clearResolutionCache` `=true`|`false` (not cleaning resolution cache)|Clean resolution cache
Expand Down

0 comments on commit d658fc2

Please sign in to comment.