anchor.diff:  TIP: Although not mandatory, it is highly recommended to use a logger library to trace your application and tests. In the case of WebDriverManager, you will see the relevant steps of the driver management following its traces. See for example the following https://www.stubbornjava.com/posts/logging-in-java-with-slf4j-and-logback)[tutorial] to use http://www.slf4j.org/[SLF4J ] and http://logback.qos.ch/[Logback]. Also, you can see an example of a WebDriverManager test using logging https://github.com/bonigarcia/webdrivermanager/blob/master/src/test/java/io/github/bonigarcia/wdm/test/firefox/FirefoxTest.java[here] (this example uses this https://github.com/bonigarcia/webdrivermanager/blob/master/src/main/resources/logback.xml[configuration file]).
   
   ==== Resolution Algorithm
  -WebDriverManager executes a _resolution algorithm_ when calling to `setup()` in a given manager. You can find all the internal details of this algorithm 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:
  +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, it tries to find the proper driver version.
  
positive.code: 
  [discrete]
  ==== Chrome 92+ in Docker
  There is an https://bugs.chromium.org/p/chromedriver/issues/detail?id=3857[open issue] with Chrome 92+ and Docker at the time of this writing. The problem can be solved to some extent by using the argument `--disable-gpu` in Chrome and Edge. This argument is used by WebDriverManager 5 to avoid the issue. Nevertheless, some situations are still impossible to fix (e.g., when using https://hub.docker.com/r/bonigarcia/webdrivermanager[WebDriverManager in Docker] as CLI or Server).
  
  == Community
  There are two ways to try to get community support related to WebDriverManager. First, questions about it can be discussed in https://stackoverflow.com/questions/tagged/webdrivermanager_java[StackOverflow], using the tag _webdrivermanager_java_. In addition, comments, suggestions, and bug-reporting should be made using the https://github.com/bonigarcia/webdrivermanager/issues[GitHub issues]. Finally, if you think WebDriverManager can be enhanced, consider contributing to the project through a  https://github.com/bonigarcia/webdrivermanager/pulls[pull request].
  
negative.code: }
  
  == Features
  WebDriverManager provides a fluent API available using the class `WebDriverManager` (package `io.github.bonigarcia.wdm`). This class provides a group of static methods to create _managers_, i.e., objects devoted to providing automated driver management and other features.
  
  === Driver Management
  The primary use of WebDriverManager is the automation of driver management. For using this feature, you need to select a given manager in the WebDriverMager API (e.g., `chromedriver()` for Chrome) and invoke the method `setup()`. The following example shows a test case using https://junit.org/junit5/[JUnit 5], Selenium WebDriver, WebDriverManager, and https://joel-costigliola.github.io/assertj/[AssertJ] (for fluent assertions). In this test, we invoke WebDriverManager in the setup method for all tests (`@BeforeAll`). This way, the required driver (chromedriver) will be available for all the WebDriver tests using Chrome in this class.
  
  [source,java]
  ----
  