Si usted es un desarrollador de Java que utiliza Selenium WebDriver para la automatización del navegador, es posible que haya enfrentado algunos desafíos en la gestión de los controladores requeridos por los diferentes navegadores. Por ejemplo, es posible que tenga que descargar, instalar, configurar y actualizar los controladores manualmente, o especificar sus rutas o propiedades del sistema en su código. Esto puede ser tedioso, propenso a errores y consumir mucho tiempo.
Afortunadamente, hay una solución que puede hacer su vida más fácil. Se llama io.github.bonigarcia.wdm.webdrivermanager, una biblioteca Java de código abierto que automatiza la administración de controladores WebDriver. En este artículo, explicaremos qué es esta biblioteca, cómo descargarla, cómo usarla y qué beneficios ofrece.
io.github.bonigarcia.wdm.webdrivermanager es una biblioteca de Java 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 una manera totalmente automatizada. También proporciona otras características como descubrir navegadores instalados en el sistema local, construir objetos WebDriver (como ChromeDriver, FirefoxDriver, EdgeDriver, etc.) y ejecutar navegadores en contenedores Docker sin problemas.
io.github.bonigarcia.wdm.webdrivermanager es también una dependencia de Maven que se puede agregar a su archivo pom.xml para simplificar su proyecto de automatización de Selenium. Maven es una herramienta de gestión y comprensión de proyectos de software que puede gestionar la creación, presentación de informes y documentación de un proyecto desde una pieza central de información. Al agregar io.github.bonigarcia.wdm.webdrivermanager como dependencia, puede evitar tener que manejar manualmente los controladores y sus configuraciones en su código.
Para descargar io.github.bonigarcia.wdm.webdrivermanager usando Maven, necesita agregar la siguiente dependencia a su archivo pom.xml:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.3.3</version> </dependency>
Puede comprobar la última versión de la biblioteca here.
Para usar io.github.bonigarcia.wdm.webdrivermanager en tu código, necesitas invocar el método setup() de la clase de administrador de controladores que corresponde a tu navegador. Por ejemplo, si desea usar ChromeDriver, debe llamar a WebDriverManager.chrom driver(). setup(); antes de crear un objeto ChromeDriver. Esto descargará la última versión de chromedriver y establecerá la propiedad del sistema webdriver.chrome.driver en su ruta. Del mismo modo, puedes usar WebDriverManager.firefoxdriver(). setup(); para FirefoxDriver, WebDriverManager.edgedriver(). setup(); para EdgeDriver, y así sucesivamente.
Para descargar io.github.bonigarcia.wdm.webdrivermanager usando Gradle, necesita agregar la siguiente dependencia a su archivo build.gradle:
dependencies testImplementation 'io.github.bonigarcia:webdrivermanager:5.3.3'
Puede comprobar la última versión de la biblioteca here.
El primer paso para usar io.github.bonigarcia.wdm.webdrivermanager es seleccionar una clase de administrador de controladores que coincida con su navegador. La biblioteca admite los siguientes navegadores y sus correspondientes gestores de controladores:
| Navegador |
|---|
| Clase del administrador de controladores |
|---|
| Chrome |
| WebDriverManager.chromedriver() |
| Firefox |
| WebDriverManager.firefoxdriver() |
| Borde |
| WebDriverManager.edgedriver() |
| Internet Explorer |
| WebDriverManager.iedriver() |
| Safari |
| WebDriverManager.safaridriver() |
| Opera |
| WebDriverManager.operadriver() |
| Cromo |
| WebDriverManager.chromiumdriver() |
| Valiente |
| WebDriverManager.brave() |
| Chrome sin cabeza |
| WebDriverManager.chromedriver(). sin cabeza() |
| Firefox sin cabeza |
| WebDriverManager.firefoxdriver(). sin cabeza() |
También puedes usar WebDriverManager.getInstance() para obtener un gestor de controladores genérico que pueda manejar cualquier navegador, siempre y cuando especifiques el nombre del navegador como parámetro. Por ejemplo, WebDriverManager.getInstance("chrome"). setup(); funcionará igual que WebDriverManager.chromedriver(). setup();.
El siguiente paso para usar io.github.bonigarcia.wdm.webdrivermanager es crear un objeto WebDriver usando el método create() de la clase driver manager. Este método devolverá un objeto WebDriver que está listo para usar para la automatización del navegador. Por ejemplo, si quieres usar ChromeDriver, puedes escribir:
Esto creará un objeto ChromeDriver que está configurado con el chromedriver descargado y las opciones predeterminadas. También puedes pasar tus propias opciones o capacidades como parámetros al método create(). Por ejemplo, si quieres usar ChromeDriver con algunas opciones personalizadas, puedes escribir:
ChromeOptions options = new ChromeOptions(); options.addArguments("-disable-notifications"); WebDriver driver = WebDriverManager.chromedriver(). create(options);Esto creará un objeto ChromeDriver que está configurado con el chromedriver descargado y las opciones especificadas. Del mismo modo, puedes usar WebDriverManager.firefoxdriver(). create(); para FirefoxDriver, WebDriverManager.edgedriver(). create(); para EdgeDriver, y así sucesivamente.
El paso final para usar io.github.bonigarcia.wdm.webdrivermanager es realizar la automatización del navegador usando comandos Selenium. Puede utilizar el objeto WebDriver que creó en el paso anterior para interactuar con el navegador y ejecutar varias acciones. Por ejemplo, si desea abrir un sitio web, introducir algún texto en un cuadro de búsqueda y hacer clic en un botón, puede escribir:
driver.get("https://www.google.com"); driver.findElement(By.name("q")). sendKeys("webdrivermanager"); driver.findElement(By.name("btnK")). click();Esto abrirá Google.com en Chrome, escriba "webdrivermanager" en el cuadro de búsqueda, y haga clic en el botón de búsqueda. Puede usar otros comandos de Selenium para realizar tareas más complejas como navegar, cambiar ventanas o marcos, manejar alertas o ventanas emergentes, tomar capturas de pantalla, etc.
Otro beneficio de usar io.github.bonigarcia.wdm.webdrivermanager es que elimina la necesidad de especificar rutas de controlador o propiedades del sistema en su código. La biblioteca detecta automáticamente las rutas del controlador desde el directorio de caché y las pasa a Selenium WebDriver. Esto hace que su código sea más limpio y portátil, ya que no tiene que codificar las rutas o propiedades que pueden variar dependiendo de su sistema o entorno.
Una tercera ventaja de usar io.github.bonigarcia.wdm.webdrivermanager es que detecta y actualiza automáticamente las versiones del controlador de acuerdo con las versiones de su navegador. La biblioteca comprueba la versión de su navegador instalada en su sistema y descarga la versión del controlador correspondiente. También comprueba si hay nuevas versiones de controladores periódicamente y las actualiza si es necesario. Esto asegura que sus controladores son siempre compatibles con sus navegadores y actualizados con las últimas características y correcciones de errores.
En este artículo, hemos aprendido cómo descargar y usar io.github.bonigarcia.wdm.webdrivermanager, una biblioteca Java que automatiza la administración de controladores WebDriver para la automatización de Selenium. Hemos visto lo que es esta biblioteca, cómo descargarla usando Maven o Gradle, cómo usarla invocando los métodos setup() y create() de las clases del administrador de controladores, y qué beneficios ofrece como simplificar la administración de controladores, configuración y actualización. Esperamos que este artículo te haya ayudado a entender cómo usar esta biblioteca y mejorar tu proyecto de automatización de Selenium. Si tiene alguna pregunta o comentario, no dude en dejar un comentario a continuación.
Los controladores requeridos por Selenium WebDriver son archivos ejecutables que actúan como un puente entre su código y el navegador. Permiten a Selenium WebDriver comunicarse con el navegador y ejecutar comandos en él. Cada navegador tiene su propio controlador que necesita ser descargado e instalado por separado. Por ejemplo, Chrome usa chromedriver, Firefox usa geckodriver, Edge usa msedgedriver, etc.
Para comprobar la versión de su navegador, por lo general puede ir a la configuración o menú de ayuda y buscar la opción que dice "Acerca de" o "Versión". Alternativamente, puede escribir algunas direcciones URL especiales en la barra de direcciones que le mostrará la información de la versión. Por ejemplo, para Chrome, puede escribir chrome://versión; para Firefox, puede escribir about:support; para Edge, puede escribir edge://versión; etc.
Para comprobar la versión de su controlador, normalmente puede ejecutar el archivo ejecutable desde la línea de comandos con el indicador -versión. Alternativamente, puedes usar el método getVersion() de la clase driver manager en tu código. Por ejemplo, WebDriverManager.chromedriver(). getVersion(); devolverá la versión de chromedriver.
Si desea usar una versión de controlador diferente a la detectada automáticamente por io.github.bonigarcia.wdm.webdrivermanager, puede usar el método driverVersion() de la clase de administrador de controladores en su código. Por ejemplo, WebDriverManager.chromedriver(). driverVersion("91.0.4472.101"). setup(); descargará y usará la versión especificada de chromedriver.