WebDriverManager ist eine Open-Source-Java-Bibliothek, die die Verwaltung (d. h. Download, Einrichtung und Wartung) der von Selenium WebDriver benötigten Treiber (z. B. Chromedriver, Geckodriver, Msedgedriver usw.) vollautomatisch durchführt. Darüber hinaus bietet WebDriverManager weitere relevante Funktionen, z. B. die Möglichkeit, im lokalen System installierte Browser zu erkennen, WebDriver-Objekte (wie ChromeDriver
, FirefoxDriver
, EdgeDriver
usw.) zu erstellen und Browser nahtlos in Docker-Containern auszuführen.
Ab Version 5 ist die Dokumentation von WebDriverManager hierher verschoben. Diese Site enthält alle Funktionen, Beispiele, Konfigurationen und erweiterten Funktionen von WebDriverManager.
Der Hauptzweck von WebDriverManager ist die Automatisierung der Treiberverwaltung. Um diese Funktion nutzen zu können, müssen Sie einen bestimmten Manager in der WebDriverManager-API auswählen (z. B. chromedriver()
für Chrome) und die Methode setup()
aufrufen. Das folgende Beispiel zeigt das Grundgerüst eines Testfalls mit JUnit 5, Selenium WebDriver und 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
}
}
Alternativ können Sie die Methode create()
verwenden, um den Treiber automatisch zu verwalten und das WebDriver
Objekt in einer einzigen Zeile zu instanziieren. Zum Beispiel wie folgt:
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
}
}
Weitere Informationen zum von WebDriverManager implementierten Treiberauflösungsalgorithmus und den Konfigurationsmöglichkeiten finden Sie in der Dokumentation.
Eine weitere relevante neue Funktion in WebDriverManager 5 ist die Möglichkeit, sofort Browser in Docker-Containern zu erstellen. Voraussetzung für die Nutzung dieser Funktion ist die Installation einer Docker Engine auf dem Computer, auf dem die Tests ausgeführt werden. Um es zu verwenden, müssen wir die Methode browserInDocker()
in Verbindung mit create()
eines bestimmten Managers aufrufen. Auf diese Weise ruft WebDriverManager das Bild vom Docker Hub ab, startet den Container und instanziiert das WebDriver-Objekt, um es zu verwenden. Der folgende Test zeigt ein einfaches Beispiel mit Chrome in Docker. Dieses Beispiel ermöglicht auch die Aufzeichnung der Browsersitzung und des Fernzugriffs mithilfe von 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 ist Teil von OpenCollective, einer Online-Finanzierungsplattform für offene und transparente Communities. Sie können das Projekt unterstützen, indem Sie als Unterstützer (z. B. eine persönliche Spende oder wiederkehrende Spende) oder als Sponsor (z. B. eine wiederkehrende Spende eines Unternehmens) beitragen.
Alternativ können Sie meine Arbeit anerkennen, indem Sie mir einen Kaffee spendieren:
WebDriverManager (Copyright © 2015-2024) ist ein von Boni Garcia erstelltes und gepflegtes Projekt, das unter den Bedingungen der Apache 2.0-Lizenz lizenziert ist.