Töltse le a Geckodriver programot Firefox & Selenium

⚡ Okos összefoglaló

GeckoDriver a következőhöz: Firefox és a Selenium proxyként működik a W3C WebDriver kliensek és a Mozilla között Firefox, parancsok lefordítása nyelvre MariOnette protokoll. Ez az útmutató ismerteti a telepítést, az inicializálási technikákat, a mintakódot, a gyakori kivételeket és az alapvető kompatibilitási előnyöket.

  • 🦊 Híd szerepe: GeckoDriver csatlakozik Selenium WebDriver kliensek Firefox használatával Marionette protokoll.
  • ⬇️ Első beállítás: Töltsd le az operációs rendszeredhez illő GeckoDriver verziót a hivatalos Mozilla tárolóból.
  • 🇧🇷 Három inicializálási útvonal: Inicializálja az illesztőprogramot a DesiredCapabilities, a marionette system tulajdonságon keresztül, vagy FirefoxLehetőségeket.
  • 🧪 Minta munkafolyamat: Felhasználás JUnit olyan annotációk, mint az @Előtte, @Teszt és @Utána a böngésző életciklusának átlátható kezeléséhez.
  • 🇧🇷 Gyakori hibák javítása: A SessionNotCreated és a kapcsolatmegtagadási problémák megoldása igazítással Firefox, Selenium, és az illesztőprogram verziói.
  • 🌐 W3C Előny: A W3C WebDriver szabvány verzióközi kompatibilitást biztosít, csökkentve az automatizálási csomagok karbantartási igényét.

GeckoDriver be Selenium

Miben van a GeckoDriver? Selenium?

A Gecko kifejezés a Mozilla webböngészőmotorjára utal. Firefox böngésző. A GeckoDriver proxyként működik a WebDriver-t támogató kliensek között (Eclipse, NetBeans, IntelliJ IDEAstb.) és a Mozilla Firefox böngésző. Röviden, a GeckoDriver összekötő kapocsként szolgál a Selenium WebDriver tesztek és Mozilla Firefox.

Előtt Selenium 3, a Mozilla Firefox böngésző volt az alapértelmezett böngésző Selenium. Után Selenium 3, a tesztelőknek inicializálniuk kell a szkriptet a használathoz Firefox explicit módon a GeckoDriver-en keresztül. Selenium a W3C WebDriver protokollt használja a kérések GeckoDrivernek történő küldéséhez, amely azokat egy nevű protokollra fordítja le. Marionette. Firefox akkor megérti a parancsokat transmitted a Marionette protokoll formátumban és végrehajtja azokat.

A GeckoDriver használatának előnyei

Selenium A WebDriver 2.53-as verziója nem kompatibilis a Mozillával Firefox 47.0+ verzió. Az örökség Firefox korábbi Mozillában használt illesztőprogram Firefox A buildek fejlesztése megszűnt, és ma már csak a GeckoDriver implementációja használható. A tesztelőknek ezért a GeckoDriver-t kell használniuk automatizált tesztek futtatásához Mozillán. Firefox 47.0-s és újabb verziók.

A GeckoDriver használatának fő előnye a hagyományos verziókkal szemben Firefox sofőr az kompatibilitásA GeckoDriver a következőre támaszkodik: W3C WebDriver protokoll kommunikálni SeleniumA W3C egy univerzálisan meghatározott szabvány a WebDriver számára. Ez azt jelenti, hogy Selenium a fejlesztőknek nem kell minden böngészőkiadáshoz új illesztőprogram-verziót létrehozniuk. Ugyanaz a WebDriver implementáció több böngészőverzióban is használható, ezért a GeckoDriver előnyösebb a régebbivel szemben. Firefox sofőr.

A GeckoDriver letöltése és telepítése Selenium

A GeckoDriver futtatható fájlként érhető el, amely közvetlenül letölthető a rendszerére. Kövesse az alábbi lépéseket a GeckoDriver letöltéséhez és telepítéséhez: Selenium automatizálás.

Step 1) Válassza ki a megfelelő verziót.
A hivatalos kiadások oldalán https://github.com/mozilla/geckodriver/releases, válaszd ki a megfelelő GeckoDriver buildet, amely illik az operációs rendszeredhez és architektúrádhoz.

Töltse le és telepítse a GeckoDriver programot Selenium

Step 2) Extraca ZIP fájlt.
Miután a ZIP fájl letöltése befejeződött, pl.tracmásold a tartalmát egy mappába a gépeden.

ExtracGeckoDriver ZIP fájl

Step 3) Jegyezd fel a sofőr helyét.
Jegyezd fel a mappa elérési útját, ahová a ...tracelmentette az illesztőprogramot. Ezt a helyet később a tesztszkriptből származó illesztőprogram példányosítására fogjuk használni.

Megjegyzés: GeckoDriver helymeghatározása

A GeckoDriver inicializálásának módjai

Három különböző módon inicializálhatja a GeckoDriver programot a Selenium tesztszkriptek. Válassza ki azt, amelyik a legjobban illik a tesztelési keretrendszeréhez, és Selenium változat.

1. A DesiredCapabilities használata

Először állítsd be a GeckoDriver rendszertulajdonságát.

Syntax:

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

Példa:

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

Ezután állítsa be a kívánt képességeket. A kívánt képességek súgója Selenium megérteni a böngésző nevét, verzióját és az automatizált tesztek végrehajtásához szükséges operációs rendszert. Az alábbiakban a GeckoDriver DesiredCapabilities osztály használatával történő konfigurálásához szükséges kód látható.

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

Itt a teljes kód:

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

2. használata MariOnette Ingatlan

A GeckoDriver a marionette tulajdonsággal is inicializálható, az alábbiak szerint.

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

Ha a GeckoDriver inicializálása a fenti módszerrel történik, a Desired Capabilities kód a következő: nem szükséges.

3. használata FirefoxOpciók

Mozilla Firefox A 47-es és újabb verziók leleplezik a Marionette illesztőprogramot, mint örökölt rendszert. Ezt kihasználva a MariAz Onette illesztőprogram meghívható a következőn keresztül: Firefox Az alábbiak szerint.

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

Code Indításhoz Firefox GeckoDriver használata

A következő JUnit-alapú példa egy teljes, futtatható Selenium teszt, amely elindul Firefox a GeckoDriver-en keresztül, és egy demóhoz navigál 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 Magyarázat

@Before módszer

Kezdetben a GeckoDriver system tulajdonságát a geckodriver.exe letöltési helyére állítottuk be. A marionette tulajdonságot is true értékre állítottuk, így Selenium használja az Marionette protokollt a GeckoDriverrel való kommunikációhoz. Végül elindítjuk a Firefox böngészőpéldány a Desired Capabilities objektum használatával.

A következő állítások ezt a beállítást érik el.

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

@Teszt módszer

Navigálunk a felhasználó által megadott helyre URL a beépített használatával get által biztosított módszer Selenium WebDriver, ahogy az alább látható.

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

@After metódus

Végül a böngészőpéldányt a következővel zárjuk be: quit módszer.

driver.quit();

Nem gekkó szkript módosítása gekkóvá

Korábban használt, nem GeckoDriver szkriptek Selenium 3 egyszerű volt. Egyszerűen létrehoztál egy példányt a Firefox illesztőprogramot, és a példányváltozót használta.

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

A GeckoDriver szkript konvertálásához csak egy sor kódot kell hozzáadni, amely a geckodriver.exe helyére mutat.

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

Gyakori kivételek a GeckoDriver használata során

Az alábbiakban a GeckoDriver használata során gyakran előforduló kivételek listája található, a megoldásaikkal együtt.

Ez a kivétel akkor fordul elő, amikor a felhasználó megpróbálja példányosítani a Firefox illesztőprogramot a GeckoDriver rendszertulajdonságának beállítása nélkül. Ez gyakran előfordul a következő esetekben: Selenium kezdők, akik nem ismerik a bevezetett változásokat Selenium 3 a korábbi verziókhoz képest.

A megoldás az, hogy a GeckoDriver rendszertulajdonságát a geckodriver.exe fájl helyével kell beállítani az alábbiak szerint.

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

Kérjük, vegye figyelembe, hogy a GeckoDriver tulajdonságát be kell állítania a Mozilla példányának létrehozása előtt. Firefox sofőr.

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

Ez a kivétel általában akkor fordul elő, amikor a Firefox verzió frissítve lett a legújabb kiadásra. A megoldás az, hogy mindkettőt frissítsük Selenium JAR fájlt és a GeckoDriver-t a legújabb kompatibilis verziókra, majd futtassa újra a szkriptet.

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

Ez a kivétel kompatibilitási problémák miatt következik be Selenium és a GeckoDriver. A GeckoDriver működik a következőkkel: Firefox 47-es vagy újabb verzió. A probléma a frissítéssel oldható meg. Firefox verzió 47-re vagy újabbra.

WebDriver Exception: Connection Refused

Ez a kivétel akkor jelenik meg, ha a WebDriver nem tud kapcsolatot létesíteni a következővel: FirefoxA következő technikák bármelyikével megoldható.

  • Használja a driver.quit() metódus a WebDriver korábbi példányainak megsemmisítésére.
  • Az automatikus tesztek futtatása előtt törölje a böngésző gyorsítótárát.
  • Tisztítsa meg a projekt munkaterületét a Eclipse SDI.
  • Mindig a legújabb verziót használd a Selenium GeckoDriver a legújabb stabil verzióval együtt Firefox kiadás.

GYIK

Nem. A GeckoDriver a proxy futtatható fájl, amely megvalósítja a W3C WebDriver szabványt. MariAz Onette a beépített automatizálási protokoll. FirefoxA GeckoDriver lefordítja a WebDriver parancsokat erre a nyelvre: Marionette üzenetek, amelyek Firefox végre tudja hajtani.

A legújabb GeckoDriver buildek hivatalosan is célba vették Firefox 91 ESR és újabb. Mindig ellenőrizd a GeckoDriver kiadási megjegyzéseit a Mozilla GitHub oldalán a minimális és maximális érték megerősítéséhez. Firefox A letöltött build által támogatott verziók.

A GeckoDriver hozzáadása a rendszer PATH-jához opcionális, de kényelmes. Ha a PATH-on van, kihagyhatja a System.setProperty hívást. Ellenkező esetben a meghajtó elérési útját explicit módon kell megadnia a fájlban. Selenium tesztszkript.

Igen. A mesterséges intelligenciával támogatott tesztelőeszközök képesek generálni Selenium WebDriver kód, javaslatkeresők és automatikusan javító, hibás szkriptek. Felgyorsítják a rutinmunkát, de a megbízható működéshez továbbra is szükség van az illesztőprogram-verziók, a várakozások és az állítások emberi felülvizsgálatára. Firefox automatizálás.

Nem. A mesterséges intelligencia ágensei jelenleg a WebDriver protokollok felett működnek, nem pedig helyettesítik azokat. A GeckoDriver továbbra is hidat képez a kettő között. Firefox, míg a mesterséges intelligencia rétegei intelligensebb helymeghatározókat, önjavító funkciókat és természetes nyelvű tesztkészítést adnak hozzá a meglévő szabványhoz.

Foglald össze ezt a bejegyzést a következőképpen: