WebDriverManager est une bibliothèque Java open source qui effectue la gestion (c'est-à-dire le téléchargement, l'installation et la maintenance) des pilotes requis par Selenium WebDriver (par exemple, chromedriver, geckodriver, msedgedriver, etc.) de manière entièrement automatisée. De plus, WebDriverManager fournit d'autres fonctionnalités pertinentes, telles que la capacité de découvrir les navigateurs installés sur le système local, de créer des objets WebDriver (tels que ChromeDriver
, FirefoxDriver
, EdgeDriver
, etc.) et d'exécuter des navigateurs dans des conteneurs Docker de manière transparente.
Depuis la version 5, la documentation de WebDriverManager a été déplacée ici. Ce site contient toutes les fonctionnalités, exemples, configuration et capacités avancées de WebDriverManager.
L'utilisation principale de WebDriverManager est l'automatisation de la gestion des pilotes. Pour utiliser cette fonctionnalité, vous devez sélectionner un gestionnaire donné dans l'API WebDriverManager (par exemple, chromedriver()
pour Chrome) et appeler la méthode setup()
. L'exemple suivant montre le squelette d'un scénario de test utilisant JUnit 5, Selenium WebDriver et WebDriverManager.
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeAll ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import org . openqa . selenium . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeTest {
WebDriver driver ;
@ BeforeAll
static void setupAll () {
WebDriverManager . chromedriver (). setup ();
}
@ BeforeEach
void setup () {
driver = new ChromeDriver ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
Alternativement, vous pouvez utiliser la méthode create()
pour gérer automatiquement le pilote et instancier l'objet WebDriver
sur une seule ligne. Par exemple, comme suit :
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import org . openqa . selenium . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeCreateTest {
WebDriver driver ;
@ BeforeEach
void setup () {
driver = WebDriverManager . chromedriver (). create ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
Pour plus d'informations sur l'algorithme de résolution de pilote implémenté par WebDriverManager et les capacités de configuration, lisez la documentation.
Une autre nouvelle fonctionnalité pertinente disponible dans WebDriverManager 5 est la possibilité de créer des navigateurs dans des conteneurs Docker prêts à l'emploi. La condition pour utiliser cette fonctionnalité est d’avoir installé un Docker Engine sur la machine exécutant les tests. Pour l'utiliser, nous devons invoquer la méthode browserInDocker()
en conjonction avec create()
d'un gestionnaire donné. De cette façon, WebDriverManager extrait l'image de Docker Hub, démarre le conteneur et instancie l'objet WebDriver pour l'utiliser. Le test suivant montre un exemple simple utilisant Chrome dans Docker. Cet exemple permet également l'enregistrement de la session du navigateur et l'accès à distance à l'aide de noVNC :
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class DockerChromeVncTest {
WebDriver driver ;
WebDriverManager wdm = WebDriverManager . chromedriver (). browserInDocker ()
. enableVnc (). enableRecording ();
@ BeforeEach
void setup () {
driver = wdm . create ();
}
@ AfterEach
void teardown () {
wdm . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
WebDriverManager fait partie d'OpenCollective, une plateforme de financement en ligne pour les communautés ouvertes et transparentes. Vous pouvez soutenir le projet en contribuant en tant que bailleur de fonds (c'est-à-dire un don personnel ou une contribution récurrente) ou en tant que sponsor (c'est-à-dire une contribution récurrente d'une entreprise).
Alternativement, vous pouvez reconnaître mon travail en m'offrant un café :
WebDriverManager (Copyright © 2015-2024) est un projet créé et maintenu par Boni Garcia et sous licence selon les termes de la licence Apache 2.0.