Descargar Geckodriver para Firefox & Selenium
¿En qué consiste GeckoDriver? Selenium?
El término Gecko significa un motor de navegador web integrado en Mozilla. Firefox Navegador. El controlador Gecko actúa como un proxy entre los clientes habilitados para Web Driver (Eclipse, Netbeans, etc.) y Mozilla Firefox Navegador. En resumen, el controlador Gecko actúa como un vínculo entre Selenium Pruebas de controladores web y Mozilla Firefox navegador.
Antes Selenium 3, Mozilla Firefox El navegador era el navegador predeterminado para Selenium. Después Selenium 3. Los evaluadores deben inicializar el script para usarlo. Firefox usando GeckoDriver explícitamente. Selenium utiliza el protocolo W3C Webdriver para enviar solicitudes a GeckoDriver, que las traduce a un protocolo llamado Marioneta. Firefox comprenderá las órdenes transmitidas en forma de Mariprotocolo onette y los ejecuta.
Cómo descargar e instalar GeckoDriver en Selenium
El controlador Gecko está disponible como archivo ejecutable que se puede descargar en el sistema. A continuación, se muestra la lista de pasos para descargar el controlador Gecko.
Paso 1 ) Seleccione la versión adecuada.
En esta pagina https://github.com/mozilla/geckodriver/releases ,Seleccione la versión apropiada para descargar GeckoDriver según su sistema operativo
Paso 2) Extraiga el archivo ZIP.
Una vez que se complete la descarga del archivo ZIP, extraiga el contenido del archivo ZIP en una carpeta de archivos
Paso 3) Tenga en cuenta la ubicación.
Anote la ubicación donde extrajo el controlador. La ubicación se utilizará más adelante para crear una instancia del controlador.
Formas de inicializar GeckoDriver
Hay tres formas diferentes de inicializar GeckoDriver.
1. Uso de capacidades deseadas
Primero, configure la propiedad del sistema para Gecko Driver.
Sintaxis:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
Ejemplo:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
A continuación, configure las capacidades deseadas.
Ayuda para las capacidades deseadas Selenium comprender el nombre del navegador, la versión y el sistema operativo para ejecutar las pruebas automatizadas. A continuación se muestra el código para configurar el controlador gecko usando la clase DesiredCapabilities.
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
Aquí está el código completo
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. Usar la propiedad de marioneta
El controlador Gecko también se puede inicializar usando la propiedad marioneta como se muestra a continuación
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
Si el controlador gecko se inicializa usando el método anterior, el código para las capacidades deseadas es No requerida.
3. Usando Firefox
Mozilla Firefox La versión 47+ tiene un controlador de marionetas como sistema heredado. Aprovechando esto, se puede llamar al controlador de marionetas usando Firefox Opciones como se muestra a continuación
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
Código para iniciar Firefox usando el controlador Gecko
package com.guru99.demo; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class GeckoDriverDemo { String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe"; public WebDriver driver; @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } @Test public void navigateToUrl() { driver.get("https://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
Explicación del código
@antes del método
Inicialmente, debemos configurar la propiedad del sistema para el controlador gecko en la ubicación de descarga del archivo geckdriver.exe. Necesitamos establecer la propiedad marioneta en verdadero para Selenium que se utilizará MariProtocolo onette para comunicarse con Gecko Driver. Finalmente, debemos comenzar el Firefox instancia del navegador que utiliza el objeto para las capacidades deseadas.
Las siguientes declaraciones ayudan a lograr la tarea anterior.
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@Método de prueba
Estamos navegando a la URL especificada por el usuario utilizando el método "obtener" incorporado proporcionado por Selenium controlador web. La siguiente declaración ayuda a lograr lo mismo.
driver.get("https://demo.guru99.com/selenium/guru99home/");
@Después del método
Finalmente, cerramos la instancia del navegador usando el método quit.
driver.quit();
Modificar un script para no Gecko a Gecko
Script de controlador que no es gecko usado antes Selenium 3 fue sencillo. Necesitamos crear una instancia de Firefox controlador y utilizar la variable de instancia.
@Before public void startBrowser() { driver = new FirefoxDriver(); }
Para convertir a gecko, simplemente necesita agregar una línea de código
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
Se produjeron excepciones comunes al utilizar Gecko Driver
A continuación se muestra una lista de excepciones comunes que ocurren al usar Gecko Driver y con la resolución.
Ventaja de usar Gecko Driver
Selenium Webdriver versión 2.53 no es compatible con Mozilla Firefox versión 47.0+. El Firefox controlador utilizado en versiones anteriores de Mozilla Firefox se suspenderá y solo se utilizará la implementación GeckoDriver. Por lo tanto, los evaluadores se ven obligados a utilizar GeckoDriver si quieren ejecutar pruebas automatizadas en Mozilla. Firefox versión 47.0+. Pero la gran pregunta: ¿cuál es la ventaja?
La principal ventaja de utilizar GeckoDriver frente al predeterminado Firefox conductor es Compatibilidad. Usos de GeckoDriver Protocolo W3C WebDriver para comunicarse con Selenium. W3C es un estándar universalmente definido para Web Driver. Esto significa Selenium Desarrolladores (personas que codifican Selenium base) no necesita crear una nueva versión de Web Driver para cada versión del navegador. Se puede utilizar el mismo controlador web para varias versiones de navegador. Por lo tanto, se prefiere GeckoDriver en comparación con la implementación anterior de Firefox conductor.