WebDriverManager es una biblioteca Java de código abierto que lleva a cabo la gestión (es decir, descarga, configuración y mantenimiento) de los controladores requeridos por Selenium WebDriver (por ejemplo, chromedriver, geckodriver, msedgedriver, etc.) de forma totalmente automatizada. Además, WebDriverManager proporciona otras características relevantes, como la capacidad de descubrir navegadores instalados en el sistema local, crear objetos WebDriver (como ChromeDriver
, FirefoxDriver
, EdgeDriver
, etc.) y ejecutar navegadores en contenedores Docker sin problemas.
A partir de la versión 5, la documentación de WebDriverManager se ha movido aquí. Este sitio contiene todas las funciones, ejemplos, configuración y capacidades avanzadas de WebDriverManager.
El uso principal de WebDriverManager es la automatización de la gestión de conductores. Para utilizar esta función, debe seleccionar un administrador determinado en la API WebDriverManager (por ejemplo, chromedriver()
para Chrome) e invocar el método setup()
. El siguiente ejemplo muestra el esqueleto de un caso de prueba que utiliza JUnit 5, Selenium WebDriver y 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
}
}
Alternativamente, puede utilizar el método create()
para gestionar automáticamente el controlador y crear una instancia del objeto WebDriver
en una sola línea. Por ejemplo, de la siguiente manera:
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
}
}
Para obtener más información sobre el algoritmo de resolución del controlador implementado por WebDriverManager y las capacidades de configuración, lea la documentación.
Otra nueva característica relevante disponible en WebDriverManager 5 es la capacidad de crear navegadores en contenedores Docker de forma inmediata. El requisito para utilizar esta característica es tener instalado un Docker Engine en la máquina que ejecuta las pruebas. Para usarlo, necesitamos invocar el método browserInDocker()
junto con create()
de un administrador determinado. De esta manera, WebDriverManager extrae la imagen de Docker Hub, inicia el contenedor y crea una instancia del objeto WebDriver para usarlo. La siguiente prueba muestra un ejemplo sencillo usando Chrome en Docker. Este ejemplo también permite la grabación de la sesión del navegador y el acceso remoto utilizando 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 es parte de OpenCollective, una plataforma de financiación en línea para comunidades abiertas y transparentes. Puedes apoyar el proyecto contribuyendo como patrocinador (es decir, una donación personal o contribución recurrente) o como patrocinador (es decir, una contribución recurrente de una empresa).
Alternativamente, puedes reconocer mi trabajo invitándome un café:
WebDriverManager (Copyright © 2015-2024) es un proyecto creado y mantenido por Boni García y licenciado bajo los términos de la Licencia Apache 2.0.