Κατεβάστε το Geckodriver για Firefox & Selenium

⚡ Έξυπνη Σύνοψη

GeckoDriver για Firefox και Selenium λειτουργεί ως ενδιάμεσος διακομιστής μεταξύ των πελατών W3C WebDriver και του Mozilla Firefox, μεταφράζοντας εντολές σε Mariπρωτόκολλο onette. Αυτός ο οδηγός εξηγεί την εγκατάσταση, τις τεχνικές αρχικοποίησης, το δείγμα κώδικα, τις συνήθεις εξαιρέσεις και τα πλεονεκτήματα συμβατότητας πυρήνα.

  • 🦊 Ρόλος Γέφυρας: Το GeckoDriver συνδέεται Selenium Πελάτες WebDriver με Firefox χρησιμοποιώντας τα Mariπρωτόκολλο ονέτ.
  • (Π.χ. Ρύθμιση πρώτα: Κατεβάστε τη σωστή έκδοση του GeckoDriver από το επίσημο αποθετήριο του Mozilla για το λειτουργικό σας σύστημα.
  • ⚙️ Τρεις διαδρομές αρχικοποίησης: Αρχικοποιήστε το πρόγραμμα οδήγησης μέσω του DesiredCapabilities, της ιδιότητας συστήματος μαριονέτας ή FirefoxΕπιλογές.
  • 🧪 Δείγμα ροής εργασίας: Χρήση JUnit σχολιασμούς όπως @Before, @Test και @After για την καθαρή διαχείριση του κύκλου ζωής του προγράμματος περιήγησης.
  • ️ Διόρθωση συνηθισμένων σφαλμάτων: Επίλυση προβλημάτων SessionNotCreated και connection-refuzed ευθυγραμμίζοντας Firefox, Seleniumκαι εκδόσεις προγραμμάτων οδήγησης.
  • 🌐 Πλεονέκτημα του W3C: Το πρότυπο W3C WebDriver παρέχει συμβατότητα μεταξύ διαφορετικών εκδόσεων, μειώνοντας τη συντήρηση για τις σουίτες αυτοματισμού.

GeckoDriver μέσα Selenium

Σε τι βρίσκεται το GeckoDriver Selenium?

Ο όρος Gecko σημαίνει μια μηχανή περιήγησης ιστού ενσωματωμένη στο Mozilla. Firefox πρόγραμμα περιήγησης. Το GeckoDriver λειτουργεί ως διακομιστής μεσολάβησης μεταξύ των πελατών με δυνατότητα WebDriver (Eclipse, NetBeans, IntelliJ IDEA, κ.λπ.) και το Mozilla Firefox πρόγραμμα περιήγησης. Με λίγα λόγια, το GeckoDriver χρησιμεύει ως σύνδεσμος μεταξύ Selenium Δοκιμές WebDriver και Mozilla Firefox.

Πριν Selenium 3, το Mozilla Firefox πρόγραμμα περιήγησης ήταν το προεπιλεγμένο πρόγραμμα περιήγησης για Selenium. Μετά Selenium 3, οι δοκιμαστές πρέπει να αρχικοποιήσουν το σενάριο για να το χρησιμοποιήσουν Firefox μέσω του GeckoDriver ρητά. Selenium χρησιμοποιεί το πρωτόκολλο W3C WebDriver για την αποστολή αιτημάτων στο GeckoDriver, το οποίο τα μεταφράζει σε ένα πρωτόκολλο με όνομα Mariμοναχική. Firefox τότε καταλαβαίνει τις εντολές transmitted στο Mariμορφή πρωτοκόλλου onette και τα εκτελεί.

Πλεονέκτημα της χρήσης του GeckoDriver

Selenium Η έκδοση 2.53 του WebDriver δεν είναι συμβατή με το Mozilla Firefox έκδοση 47.0+. Η κληρονομιά Firefox πρόγραμμα οδήγησης που χρησιμοποιήθηκε σε παλαιότερες εκδόσεις του Mozilla Firefox Οι εκδόσεις έχουν διακοπεί και μόνο η υλοποίηση GeckoDriver μπορεί να χρησιμοποιηθεί σήμερα. Επομένως, οι δοκιμαστές πρέπει να χρησιμοποιούν το GeckoDriver για να εκτελούν αυτοματοποιημένες δοκιμές στο Mozilla. Firefox έκδοση 47.0 και νεότερη.

Το κύριο πλεονέκτημα της χρήσης του GeckoDriver σε σχέση με το παλαιότερο Firefox οδηγός είναι συμβατότηταΤο GeckoDriver βασίζεται στο Πρωτόκολλο W3C WebDriver να επικοινωνήσει με SeleniumΤο W3C είναι ένα παγκοσμίως καθορισμένο πρότυπο για το WebDriver. Αυτό σημαίνει Selenium Οι προγραμματιστές δεν χρειάζεται να δημιουργούν μια νέα έκδοση προγράμματος οδήγησης για κάθε έκδοση προγράμματος περιήγησης. Η ίδια υλοποίηση WebDriver μπορεί να χρησιμοποιηθεί σε πολλές εκδόσεις προγράμματος περιήγησης, γι' αυτό και το GeckoDriver προτιμάται έναντι των παλαιότερων. Firefox οδηγός.

Πώς να κατεβάσετε και να εγκαταστήσετε το GeckoDriver στο Selenium

Το GeckoDriver διανέμεται ως εκτελέσιμο αρχείο που μπορεί να ληφθεί απευθείας στο σύστημά σας. Ακολουθήστε τα παρακάτω βήματα για να κατεβάσετε και να εγκαταστήσετε το GeckoDriver για Selenium αυτοματοποίηση.

Βήμα 1) Επιλέξτε την κατάλληλη έκδοση.
Στην επίσημη σελίδα κυκλοφοριών https://github.com/mozilla/geckodriver/releases, επιλέξτε την κατάλληλη έκδοση GeckoDriver που ταιριάζει με το λειτουργικό σας σύστημα και την αρχιτεκτονική σας.

Κατεβάστε και εγκαταστήστε το GeckoDriver στο Selenium

Βήμα 2) Extracτο αρχείο ZIP.
Μόλις ολοκληρωθεί η λήψη του αρχείου ZIP, π.χ.tracμεταφέρετε τα περιεχόμενά του σε έναν φάκελο στο μηχάνημά σας.

ExtracΑρχείο ZIP GeckoDriver

Βήμα 3) Σημειώστε τη θέση του οδηγού.
Καταγράψτε τη διαδρομή του φακέλου όπου κάνατε την εκτέλεσηtracted το πρόγραμμα οδήγησης. Αυτή η τοποθεσία θα χρησιμοποιηθεί αργότερα για την δημιουργία του προγράμματος οδήγησης από το δοκιμαστικό σας σενάριο.

Σημειώστε την τοποθεσία του GeckoDriver

Τρόποι αρχικοποίησης του GeckoDriver

Υπάρχουν τρεις διαφορετικοί τρόποι για να αρχικοποιήσετε το GeckoDriver στο Selenium σενάρια δοκιμών. Επιλέξτε αυτό που ταιριάζει καλύτερα στο πλαίσιο δοκιμών σας και Selenium εκδοχή.

1. Χρήση DesiredCapabilities

Αρχικά, ορίστε την ιδιότητα συστήματος για το GeckoDriver.

Σύνταξη:

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

Παράδειγμα:

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

Στη συνέχεια, ορίστε τις Επιθυμητές Δυνατότητες. Βοήθεια με τις Επιθυμητές Δυνατότητες Selenium κατανοήστε το όνομα του προγράμματος περιήγησης, την έκδοση και το λειτουργικό σύστημα που απαιτούνται για την εκτέλεση των αυτοματοποιημένων δοκιμών. Παρακάτω είναι ο κώδικας για τη ρύθμιση παραμέτρων του GeckoDriver χρησιμοποιώντας την κλάση DesiredCapabilities.

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

Εδώ είναι ο πλήρης κώδικας:

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

2. Χρησιμοποιώντας MariΑκίνητο Ονέτ

Το GeckoDriver μπορεί επίσης να αρχικοποιηθεί χρησιμοποιώντας την ιδιότητα marionette όπως φαίνεται παρακάτω.

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

Εάν το GeckoDriver αρχικοποιηθεί χρησιμοποιώντας την παραπάνω μέθοδο, ο κώδικας Επιθυμητών Δυνατοτήτων είναι δεν απαιτείται.

3. Χρησιμοποιώντας FirefoxΕπιλογές

Mozilla Firefox η έκδοση 47+ εκθέτει το Mariπρόγραμμα οδήγησης onette ως παλαιότερο σύστημα. Εκμεταλλευόμενος αυτό, το MariΟ οδηγός onette μπορεί να κληθεί μέσω Firefox Επιλογές όπως φαίνονται παρακάτω.

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

Code για την έναρξη Firefox Χρήση του GeckoDriver

Ο ακόλουθος JUnitΤο παράδειγμα που βασίζεται σε - δείχνει ένα πλήρες, εκτελέσιμο Selenium δοκιμή που ξεκινά Firefox μέσω του GeckoDriver και μεταβαίνει σε μια επίδειξη 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 εξήγηση

@Πριν τη μέθοδο

Αρχικά, ορίσαμε την ιδιότητα συστήματος για το GeckoDriver στην τοποθεσία λήψης του geckodriver.exe. Ορίσαμε επίσης την ιδιότητα marionette σε true, ώστε Selenium χρησιμοποιεί το Mariπρωτόκολλο onette για επικοινωνία με το GeckoDriver. Τέλος, ξεκινάμε το Firefox μια παρουσία προγράμματος περιήγησης χρησιμοποιώντας το αντικείμενο Desired Capabilities.

Οι ακόλουθες δηλώσεις επιτυγχάνουν αυτήν τη ρύθμιση.

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

@Μέθοδος ελέγχου

Μεταβαίνουμε στο καθορισμένο από τον χρήστη URL χρησιμοποιώντας την ενσωματωμένη get μέθοδος που παρέχεται από Selenium WebDriver, όπως φαίνεται παρακάτω.

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

@Μετά τη μέθοδο

Τέλος, κλείνουμε την παρουσία του προγράμματος περιήγησης χρησιμοποιώντας το quit μέθοδος.

driver.quit();

Τροποποίηση σεναρίου από μη-γκέκο σε γκέκο

Σενάρια που δεν είναι GeckoDriver και χρησιμοποιήθηκαν προηγουμένως Selenium 3 ήταν απλά. Απλώς δημιουργήσατε μια παρουσία του Firefox πρόγραμμα οδήγησης και χρησιμοποίησε τη μεταβλητή παρουσίας.

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

Για να μετατρέψετε το σενάριο για το GeckoDriver, χρειάζεται να προσθέσετε μόνο μία γραμμή κώδικα που να οδηγεί στη θέση geckodriver.exe.

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

Συνήθεις εξαιρέσεις που παρουσιάστηκαν κατά τη χρήση του GeckoDriver

Ακολουθεί μια λίστα με συνήθεις εξαιρέσεις που προκύπτουν κατά τη χρήση του GeckoDriver, μαζί με τις λύσεις τους.

Αυτή η εξαίρεση παρουσιάζεται όταν ο χρήστης προσπαθεί να δημιουργήσει ένα αντίγραφο του Firefox πρόγραμμα οδήγησης χωρίς να ορίσετε την ιδιότητα συστήματος για το GeckoDriver. Εμφανίζεται συνήθως με Selenium αρχάριοι που δεν γνωρίζουν τις αλλαγές που εισήχθησαν Selenium 3 σε σύγκριση με τις προηγούμενες εκδόσεις.

Η λύση είναι να ορίσετε την ιδιότητα συστήματος για το GeckoDriver με τη θέση του αρχείου geckodriver.exe, όπως φαίνεται παρακάτω.

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

Λάβετε υπόψη ότι πρέπει να ορίσετε την ιδιότητα του GeckoDriver πριν δημιουργήσετε μια παρουσία του Mozilla. Firefox οδηγός.

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

Αυτή η εξαίρεση συνήθως συμβαίνει όταν η Firefox η έκδοση έχει αναβαθμιστεί στην πιο πρόσφατη έκδοση. Η λύση είναι να ενημερωθούν και τα δύο Selenium το αρχείο JAR και το GeckoDriver στις πιο πρόσφατες συμβατές εκδόσεις και, στη συνέχεια, εκτελέστε ξανά το σενάριο.

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

Αυτή η εξαίρεση προκύπτει λόγω προβλημάτων συμβατότητας μεταξύ Selenium και GeckoDriver. Το GeckoDriver λειτουργεί με Firefox έκδοση 47 ή νεότερη. Το πρόβλημα μπορεί να λυθεί αναβαθμίζοντας το Firefox έκδοση 47 ή νεότερη.

WebDriver Exception: Connection Refused

Αυτή η εξαίρεση εμφανίζεται όταν το WebDriver δεν μπορεί να δημιουργήσει σύνδεση με FirefoxΜπορεί να επιλυθεί χρησιμοποιώντας οποιαδήποτε από τις ακόλουθες τεχνικές.

  • Χρησιμοποιήστε το driver.quit() μέθοδος για την καταστροφή προηγούμενων παρουσιών του WebDriver.
  • Καθαρίστε την προσωρινή μνήμη του προγράμματος περιήγησης πριν εκτελέσετε τις αυτοματοποιημένες δοκιμές σας.
  • Καθαρίστε τον χώρο εργασίας του έργου εντός του Eclipse SDI.
  • Να χρησιμοποιείτε πάντα την πιο πρόσφατη έκδοση του Selenium GeckoDriver μαζί με την πιο πρόσφατη σταθερή έκδοση Firefox ελευθέρωση.

Συχνές Ερωτήσεις

Όχι. Το GeckoDriver είναι το εκτελέσιμο αρχείο proxy που υλοποιεί το πρότυπο W3C WebDriver. MariΤο onette είναι το πρωτόκολλο αυτοματισμού που είναι ενσωματωμένο στο FirefoxΤο GeckoDriver μεταφράζει τις εντολές του WebDriver σε Mariμηνύματα της ονέτ που Firefox μπορεί να εκτελέσει.

Οι τελευταίες εκδόσεις του GeckoDriver στοχεύουν επίσημα Firefox 91 ESR και νεότερες εκδόσεις. Ελέγχετε πάντα τις σημειώσεις έκδοσης του GeckoDriver στη σελίδα GitHub του Mozilla για να επιβεβαιώσετε την ελάχιστη και τη μέγιστη τιμή. Firefox εκδόσεις που υποστηρίζονται από την έκδοση που κατεβάσατε.

Η προσθήκη του GeckoDriver στο PATH του συστήματος είναι προαιρετική αλλά βολική. Εάν βρίσκεται στο PATH, μπορείτε να παραλείψετε την κλήση System.setProperty. Διαφορετικά, πρέπει να καθορίσετε ρητά τη διαδρομή του προγράμματος οδήγησης μέσα στο Selenium δοκιμαστικό σενάριο.

Ναι. Τα εργαλεία δοκιμών με τη βοήθεια της τεχνητής νοημοσύνης μπορούν να δημιουργήσουν Selenium Κώδικας WebDriver, εντοπιστές προτάσεων και αυτόματη επιδιόρθωση ασταθών σεναρίων. Επιταχύνουν την καθημερινή εργασία, αλλά εξακολουθεί να απαιτείται ανθρώπινη αναθεώρηση των εκδόσεων του προγράμματος οδήγησης, των αναμονών και των δηλώσεων για αξιόπιστη λειτουργία. Firefox αυτοματοποίηση.

Όχι. Οι πράκτορες τεχνητής νοημοσύνης βρίσκονται επί του παρόντος πάνω από τα πρωτόκολλα WebDriver αντί να τα αντικαθιστούν. Το GeckoDriver παραμένει η γέφυρα προς Firefox, ενώ τα επίπεδα τεχνητής νοημοσύνης προσθέτουν πιο έξυπνους εντοπιστές, αυτοεπιδιόρθωση και σύνταξη δοκιμών σε φυσική γλώσσα επιπλέον του υπάρχοντος προτύπου.

Συνοψίστε αυτήν την ανάρτηση με: