Téléchargez Geckodriver pour Firefox & Selenium pilote web

Qu'est-ce que GeckoDriver dans Selenium?

Le terme Gecko désigne un moteur de navigateur Web intégré à Mozilla. Firefox navigateur. Le pilote Gecko agit comme un proxy entre les clients compatibles avec le pilote Web (Eclipse, Netbeans, etc.) et Mozilla Firefox navigateur. En bref, le pilote Gecko agit comme un lien entre Selenium Tests de pilotes Web et Mozilla Firefox navigateur.

Avant Selenium 3, Mozilla Firefox Le navigateur était le navigateur par défaut pour Selenium. Après Selenium 3, les testeurs doivent initialiser le script pour l'utiliser Firefox en utilisant explicitement GeckoDriver. Selenium utilise le protocole W3C Webdriver pour envoyer des requêtes à GeckoDriver, qui les traduit en un protocole nommé Marionette. Firefox comprendra les commandes transmises sous forme de Marionette et les exécute.

GeckoDriver dans Selenium

Comment télécharger et installer GeckoDriver dans Selenium

Gecko Driver est disponible sous forme de fichier exécutable pouvant être téléchargé sur le système. Voici la liste des étapes pour télécharger le pilote gecko.

Étape 1 ) Sélectionnez la version appropriée.
A cette page https://github.com/mozilla/geckodriver/releases , Sélectionnez la version appropriée pour le téléchargement de GeckoDriver en fonction de votre système d'exploitation

Téléchargez et installez GeckoDriver dans Selenium

Étape 2) Extrayez le fichier ZIP.
Une fois le téléchargement du fichier ZIP terminé, extrayez le contenu du fichier ZIP dans un dossier de fichiers.

Téléchargez et installez GeckoDriver dans Selenium

Étape 3) Notez l'emplacement.
Notez l'emplacement où vous avez extrait le pilote. L'emplacement sera utilisé ultérieurement pour instancier le pilote.

Téléchargez et installez GeckoDriver dans Selenium

Façons d'initialiser GeckoDriver

Il existe trois manières différentes d'initialiser GeckoDriver.

1. Utilisation des capacités souhaitées

Tout d’abord, définissez la propriété système pour Gecko Driver.

syntaxe:

System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");

Mise en situation :

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

Ensuite, définissez les capacités souhaitées.

Aide sur les capacités souhaitées Selenium pour comprendre le nom du navigateur, la version et le système d'exploitation pour exécuter les tests automatisés. Vous trouverez ci-dessous le code permettant de définir le pilote gecko à l'aide de la classe DesiredCapabilities.

DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);

Voici le code complet

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver= new FirefoxDriver(capabilities);

2. Utiliser la propriété de la marionnette

Le pilote Gecko peut également être initialisé en utilisant la propriété marionnette comme ci-dessous

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

Si le pilote gecko est initialisé à l'aide de la méthode ci-dessus, le code des fonctionnalités souhaitées est pas nécessaire.

3. Utilisation FirefoxOptions

Mozilla Firefox la version 47+ a un pilote de marionnette comme système hérité. Profitant de cela, le conducteur de marionnette peut être appelé en utilisant Firefox Options comme ci-dessous

FirefoxOptions options = new FirefoxOptions();
options.setLegacy(true);

Code pour lancer Firefox à l'aide du pilote 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();
    }

}

Explication du code

Méthode @Avant

Dans un premier temps, nous devons définir la propriété système du pilote gecko sur l'emplacement de téléchargement du fichier geckdriver.exe. Nous devons définir la propriété marionnette sur true pour Selenium à utiliser Mariprotocole onette pour communiquer avec Gecko Driver. Enfin, nous devons commencer le Firefox instance de navigateur utilisant l'objet pour les capacités souhaitées.

Les déclarations ci-dessous aident à accomplir la tâche ci-dessus.

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver= new FirefoxDriver(capabilities);

@Méthode d'essai

Nous naviguons vers l'URL spécifiée par l'utilisateur à l'aide de la méthode « get » intégrée fournie par Selenium pilote Web. La déclaration ci-dessous aide à réaliser la même chose.

driver.get("https://demo.guru99.com/selenium/guru99home/");

Méthode @After

Enfin, nous fermons l'instance du navigateur en utilisant la méthode quit.

driver.quit();

Modifier un script pour un non-Gecko en Gecko

Script de pilote non-gecko utilisé auparavant Selenium 3 était simple. Nous devons créer une instance de Firefox pilote et utilisez la variable d’instance.

@Before
public void startBrowser() {
    driver = new FirefoxDriver();

}

Pour convertir en gecko, vous devez simplement ajouter une ligne de code

    @Before
    public void startBrowser() {
        System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
        driver = new FirefoxDriver();

    }

Des exceptions courantes se sont produites lors de l'utilisation de Gecko Driver

Voici une liste des exceptions courantes qui se produisent lors de l'utilisation de Gecko Driver et de la résolution.

Cette exception se produit lorsque l'utilisateur tente d'instancier Firefox pilote sans définir la propriété système pour le pilote gecko. Ceci est généralement fait par les débutants pour Selenium qui ne sont pas au courant des changements apportés par Selenium Entre 3 et Selenium Versions précédentes.

La résolution de l'exception ci-dessus consiste à définir la propriété système du pilote gecko avec l'emplacement du fichier geckodriver.exe comme ci-dessous.

System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\geckodriver.exe");

Veuillez noter que vous devez définir la propriété du pilote gecko avant de créer une instance de Mozilla. Firefox chauffeur.

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

Cette exception se produit généralement lorsque Firefox La version a été mise à niveau vers la dernière version. La résolution de cette exception consiste à mettre à jour le fichier jar Selenium et le pilote gecko vers la dernière version et à les utiliser.

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

Cette exception se produit en raison de problèmes de compatibilité entre Selenium et pilote Gecko. Le pilote Gecko fonctionne avec Firefox version 47 ou supérieure. Il peut être résolu en mettant à jour Firefox version à 47 ou supérieure.

WebDriver Exception: Connection Refused

Cette exception est le message généré lorsque le pilote Web ne parvient pas à établir une connexion avec Firefox. Il peut être résolu en utilisant l’une des techniques suivantes.

  • Utilisez driver.quit() méthode pour détruire les instances antérieures du pilote Web
  • Nettoyez le cache du navigateur avant d'exécuter vos tests automatisés
  • Nettoyer l'espace de travail du projet dans Eclipse IDE
  • Utilisez toujours la dernière version du pilote Selenium Gecko et la version la plus récente de Firefox navigateur

Avantage d'utiliser Gecko Driver

Selenium La version 2.53 de Webdriver n'est pas compatible avec Mozilla Firefox version 47.0+. Le Firefox pilote utilisé dans les versions antérieures de Mozilla Firefox sera interrompu et seule l'implémentation de GeckoDriver sera utilisée. Les testeurs sont donc obligés d'utiliser GeckoDriver s'ils souhaitent exécuter des tests automatisés sur Mozilla. Firefox version 47.0+. Mais la grande question : quel est l’avantage ?

Le principal avantage de l'utilisation de GeckoDriver par rapport à la valeur par défaut Firefox le conducteur est Compatibilité. GeckoDriver utilise Protocole W3C WebDriver communiquer avec Selenium. Le W3C est une norme universellement définie pour Web Driver. Cela signifie Selenium Développeurs (personnes qui codent Selenium base) n'a pas besoin de créer une nouvelle version de Web Driver pour chaque version du navigateur. Le même pilote Web peut être utilisé pour plusieurs versions de navigateur. Par conséquent, GeckoDriver est préféré par rapport à la mise en œuvre antérieure de Firefox chauffeur.