Téléchargez Geckodriver pour Firefox & Selenium

⚡ Résumé intelligent

GeckoDriver pour Firefox et Selenium agit comme un intermédiaire entre les clients W3C WebDriver et Mozilla Firefox, traduisant les commandes en MariProtocole Onette. Ce guide explique l'installation, les techniques d'initialisation, des exemples de code, les exceptions courantes et les avantages en matière de compatibilité avec le noyau.

  • 🦊 Rôle du pont : GeckoDriver se connecte Selenium Clients WebDriver avec Firefox en utilisant la fonction MariProtocole Onette.
  • ⬇️ Configuration initiale : Téléchargez la version de GeckoDriver adaptée à votre système d'exploitation depuis le dépôt officiel de Mozilla.
  • ⚙️ Trois chemins d'initialisation : Initialisez le pilote via DesiredCapabilities, la propriété système Marionette, ou FirefoxOptions.
  • 🧪 Exemple de flux de travail : Utilisez le JUnit des annotations telles que @Before, @Test et @After pour gérer proprement le cycle de vie du navigateur.
  • Correction des erreurs courantes : Résolvez les problèmes de session non créée et de connexion refusée en alignant Firefox, Seleniumet les versions des pilotes.
  • 🌐 Avantage W3C : La norme WebDriver du W3C assure une compatibilité entre les versions, réduisant ainsi la maintenance des suites d'automatisation.

GeckoDriver dans Selenium

Qu'est-ce que GeckoDriver dans Selenium?

Le terme Gecko désigne un moteur de navigateur web intégré à Mozilla. Firefox navigateur. GeckoDriver agit comme un proxy entre les clients compatibles WebDriver (Eclipse, NetBeans, IntelliJ IDEA, etc.) et Mozilla Firefox navigateur. En bref, GeckoDriver sert de lien entre Selenium Tests WebDriver et Mozilla Firefox.

Avant Selenium 3, le 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 via GeckoDriver explicitement. Selenium utilise le protocole WebDriver du W3C pour envoyer des requêtes à GeckoDriver, qui les traduit en un protocole nommé Marionette. Firefox comprend alors les commandes transmitted dans le Mariformate et exécute le protocole onette.

Avantages de l'utilisation de GeckoDriver

Selenium WebDriver version 2.53 n'est pas compatible avec Mozilla Firefox Version 47.0+. L'ancienne version Firefox pilote utilisé dans les versions précédentes de Mozilla Firefox Les compilations ont été abandonnées et seule l'implémentation GeckoDriver peut être utilisée aujourd'hui. Les testeurs sont donc tenus d'utiliser GeckoDriver pour exécuter des tests automatisés sur Mozilla. Firefox version 47.0 et supérieure.

Le principal avantage de l'utilisation de GeckoDriver par rapport à l'ancienne version est que cette dernière offre un avantage considérable. Firefox le conducteur est compatibilitéGeckoDriver s'appuie sur Protocole W3C WebDriver communiquer avec SeleniumLe W3C est une norme universellement définie pour WebDriver. Cela signifie Selenium Les développeurs n'ont plus besoin de créer une nouvelle version de pilote pour chaque nouvelle version de navigateur. La même implémentation de WebDriver peut être utilisée sur plusieurs versions de navigateurs, ce qui explique la préférence pour GeckoDriver par rapport aux anciennes versions. Firefox chauffeur.

Comment télécharger et installer GeckoDriver dans Selenium

GeckoDriver est distribué sous forme de fichier exécutable téléchargeable directement sur votre système. Suivez les étapes ci-dessous pour télécharger et installer GeckoDriver. Selenium automatisation.

Étape 1) Sélectionnez la version appropriée.
Sur la page des communiqués officiels https://github.com/mozilla/geckodriver/releases, choisissez la version de GeckoDriver appropriée qui correspond à votre système d'exploitation et à votre architecture.

Téléchargez et installez GeckoDriver dans Selenium

Étape 2) Extracdans le fichier ZIP.
Une fois le téléchargement du fichier ZIP terminé, extracTransférez son contenu dans un dossier sur votre ordinateur.

Extracfichier ZIP de GeckoDriver

Étape 3) Notez l'emplacement du conducteur.
Enregistrez le chemin d'accès au dossier où vous extracLe pilote a été créé. Cet emplacement sera utilisé ultérieurement pour instancier le pilote à partir de votre script de test.

Notez l'emplacement de GeckoDriver

Méthodes d'initialisation de GeckoDriver

Il existe trois manières différentes d'initialiser GeckoDriver dans votre Selenium Scripts de test. Choisissez celui qui convient le mieux à votre framework de test et Selenium version.

1. Utilisation des capacités souhaitées

Commencez par définir la propriété système pour GeckoDriver.

syntaxe:

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

Exemple :

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

Ensuite, définissez les fonctionnalités souhaitées. Les fonctionnalités souhaitées permettent de… Selenium Il est nécessaire de connaître le nom du navigateur, sa version et le système d'exploitation requis pour exécuter les tests automatisés. Le code ci-dessous permet de configurer GeckoDriver à 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. Utilisation MariPropriété Onette

GeckoDriver peut également être initialisé à l'aide de la propriété marionnette, comme indiqué ci-dessous.

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

Si GeckoDriver est initialisé à l'aide de la méthode ci-dessus, le code Desired Capabilities est pas nécessaire.

3. Utilisation FirefoxOptions

Mozilla Firefox La version 47+ expose MariLe pilote onette en tant que système hérité. Tirant parti de cela, le MariLe pilote onette peut être invoqué via Firefox Options présentées ci-dessous.

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

Code pour le lancement Firefox Utilisation de GeckoDriver

JUnitL'exemple basé sur - montre un exemple complet et exécutable Selenium test qui lance Firefox via GeckoDriver et accède à une démo URL.

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();
    }

}

Code Explication

Méthode @Avant

Initialement, nous avons défini la propriété système de GeckoDriver sur l'emplacement de téléchargement de geckodriver.exe. Nous avons également défini la propriété marionnette sur true. Selenium utilise l' MariProtocole Onette pour communiquer avec GeckoDriver. Enfin, nous démarrons le Firefox Instance de navigateur utilisant l'objet Desired Capabilities.

Les instructions suivantes permettent d'obtenir cette configuration.

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'emplacement spécifié par l'utilisateur URL en utilisant le intégré get méthode fournie par Selenium WebDriver, comme indiqué ci-dessous.

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

Méthode @After

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

driver.quit();

Modifier un script pour non-Gecko en Gecko

Scripts non-GeckoDriver utilisés avant Selenium Les 3 étaient simples. Il suffisait de créer une instance de Firefox pilote et a utilisé la variable d'instance.

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

Pour convertir le script pour GeckoDriver, il suffit d'ajouter une seule ligne de code qui pointe vers l'emplacement de geckodriver.exe.

@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 GeckoDriver

Vous trouverez ci-dessous une liste des exceptions courantes qui surviennent lors de l'utilisation de GeckoDriver, ainsi que leurs solutions.

Cette exception se produit lorsque l'utilisateur tente d'instancier le Firefox pilote sans définir la propriété système pour GeckoDriver. Ce problème est fréquemment rencontré avec Selenium les débutants qui ne sont pas au courant des changements introduits dans Selenium 3 par rapport aux versions précédentes.

La solution consiste à définir la propriété système de GeckoDriver avec l'emplacement du fichier geckodriver.exe comme indiqué ci-dessous.

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

Veuillez noter que vous devez définir la propriété GeckoDriver 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 à jour vers la dernière version. La solution consiste à mettre à jour les deux Selenium Mettez à jour le fichier JAR et GeckoDriver vers les dernières versions compatibles, puis exécutez à nouveau le script.

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

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

WebDriver Exception: Connection Refused

Cette exception apparaît lorsque WebDriver ne parvient pas à établir une connexion avec FirefoxCe problème peut être résolu en utilisant l'une des techniques suivantes.

  • Utilisez le bouton driver.quit() méthode pour détruire les instances précédentes de WebDriver.
  • Videz le cache de votre navigateur avant d'exécuter vos tests automatisés.
  • Nettoyez l'espace de travail du projet dans le Eclipse IDE
  • Utilisez toujours la dernière version de Selenium GeckoDriver ainsi que la version stable la plus récente Firefox libérer.

FAQ

Non. GeckoDriver est le fichier exécutable proxy qui implémente la norme WebDriver du W3C. Marionette est le protocole d'automatisation intégré à FirefoxGeckoDriver traduit les commandes WebDriver en Marimessages onette que Firefox peut exécuter.

Les dernières versions de GeckoDriver ciblent officiellement Firefox Version 91 ESR et versions ultérieures. Consultez toujours les notes de version de GeckoDriver sur la page GitHub de Mozilla pour confirmer les exigences minimales et maximales. Firefox versions prises en charge par votre version téléchargée.

L'ajout de GeckoDriver au PATH système est facultatif, mais pratique. S'il est déjà présent dans le PATH, vous pouvez ignorer l'appel à System.setProperty. Sinon, vous devez spécifier explicitement le chemin du pilote dans votre fichier de configuration. Selenium script de test.

Oui. Les outils de test assistés par l'IA peuvent générer Selenium Le code WebDriver, les localisateurs suggérés et la réparation automatique des scripts instables accélèrent les tâches routinières, mais une vérification humaine des versions de pilotes, des temps d'attente et des assertions reste indispensable pour une fiabilité optimale. Firefox automatisation.

Non. Les agents d'IA s'appuient actuellement sur les protocoles WebDriver au lieu de les remplacer. GeckoDriver reste le pont vers Firefox, tandis que les couches d'IA ajoutent des localisateurs plus intelligents, une auto-réparation et une création de tests en langage naturel par-dessus la norme existante.

Résumez cet article avec :