Gecko (Marionette) Driver Selenium: Λήψη, εγκατάσταση, χρήση με τον Firefox

Πίνακας περιεχομένων:

Anonim

Τι είναι το πρόγραμμα οδήγησης Gecko;

Ο όρος Gecko σημαίνει μηχανή Web Browser που είναι ενσωματωμένη στο πρόγραμμα περιήγησης Mozilla Firefox. Το πρόγραμμα οδήγησης Gecko λειτουργεί ως διακομιστής μεσολάβησης μεταξύ των προγραμμάτων-πελάτη με δυνατότητα προγράμματος οδήγησης Web (Eclipse, Netbeans κ.λπ.) και του προγράμματος περιήγησης Mozilla Firefox. Εν ολίγοις, το πρόγραμμα οδήγησης Gecko λειτουργεί ως σύνδεσμος μεταξύ των δοκιμών προγράμματος οδήγησης ιστού Selenium και του προγράμματος περιήγησης Mozilla Firefox.

Πριν από το Selenium 3, το πρόγραμμα περιήγησης Mozilla Firefox ήταν το προεπιλεγμένο πρόγραμμα περιήγησης για το Selenium. Μετά το Selenium 3, οι υπεύθυνοι δοκιμών πρέπει να προετοιμάσουν το σενάριο για να χρησιμοποιήσουν τον Firefox χρησιμοποιώντας το GeckoDriver ρητά. Το Selenium χρησιμοποιεί το πρωτόκολλο W3C Webdriver για την αποστολή αιτημάτων στο GeckoDriver, το οποίο τα μεταφράζει σε πρωτόκολλο με το όνομα Marionette. Ο Firefox κατανοεί τις εντολές που μεταδίδονται με τη μορφή πρωτοκόλλου Marionette και τις εκτελεί.

Πλεονέκτημα της χρήσης του προγράμματος οδήγησης Gecko

Το Selenium Webdriver έκδοση 2.53 δεν είναι συμβατό με το Mozilla Firefox έκδοση 47.0+. Το πρόγραμμα οδήγησης Firefox που χρησιμοποιήθηκε σε παλαιότερες εκδόσεις του Mozilla Firefox θα διακοπεί και θα χρησιμοποιηθεί μόνο η εφαρμογή GeckoDriver. Ως εκ τούτου, οι υπεύθυνοι δοκιμών αναγκάζονται να χρησιμοποιήσουν το GeckoDriver εάν θέλουν να εκτελέσουν αυτοματοποιημένες δοκιμές στο Mozilla Firefox έκδοση 47.0+. Αλλά το μεγάλο ερώτημα - ποιο είναι το πλεονέκτημα;

Το κύριο πλεονέκτημα της χρήσης του GeckoDriver σε αντίθεση με το προεπιλεγμένο πρόγραμμα οδήγησης Firefox είναι η συμβατότητα . Το GeckoDriver χρησιμοποιεί το πρωτόκολλο W3C WebDriver για επικοινωνία με το Selenium. Το W3C είναι ένα καθολικά καθορισμένο πρότυπο για το Web Driver. Αυτό σημαίνει ότι οι προγραμματιστές Selenium (Άτομα που κωδικοποιούν τη βάση Selenium) δεν χρειάζεται να δημιουργήσουν μια νέα έκδοση του προγράμματος οδήγησης Ιστού για κάθε έκδοση του προγράμματος περιήγησης. Το ίδιο πρόγραμμα οδήγησης Web μπορεί να χρησιμοποιηθεί για πολλές εκδόσεις προγράμματος περιήγησης. Ως εκ τούτου, προτιμάται το GeckoDriver σε σύγκριση με την προηγούμενη εφαρμογή του προγράμματος οδήγησης Firefox.

Λήψη και εγκατάσταση προγράμματος οδήγησης Gecko:

Το Πρόγραμμα οδήγησης Gecko είναι διαθέσιμο ως εκτελέσιμο αρχείο που μπορείτε να το κατεβάσετε στο σύστημα. Ακολουθούν η λίστα βημάτων για τη λήψη του προγράμματος οδήγησης gecko.

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

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

Βήμα 3) Σημειώστε την τοποθεσία στην οποία εξαγάγατε το πρόγραμμα οδήγησης. Η τοποθεσία θα χρησιμοποιηθεί αργότερα για να δημιουργηθεί το πρόγραμμα οδήγησης.

Τρόποι προετοιμασίας του GeckoDriver:

Υπάρχουν τρεις διαφορετικοί τρόποι προετοιμασίας του GeckoDriver.

1. Χρησιμοποιώντας τις επιθυμητές δυνατότητες:

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

Σύνταξη:

System.setProperty ("webdriver.gecko.driver", "Διαδρομή στο αρχείο geckdriver.exe");

Παράδειγμα:

System.setProperty ("webdriver.gecko.driver", "D: \\ Λήψεις \\ GeckoDriver.exe");

Στη συνέχεια, ορίστε τις επιθυμητές δυνατότητες.

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

Δυνατότητες DesiredCapabilities = DesiredCapabilities.firefox ();δυνατότητες.setCapability ("marionette", true);

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

System.setProperty ("webdriver.gecko.driver", driverPath);Δυνατότητες DesiredCapabilities = DesiredCapabilities.firefox ();δυνατότητες.setCapability ("marionette", true);driver = νέο FirefoxDriver (δυνατότητες);

2. Χρήση ιδιότητας μαριονέτας:

Το πρόγραμμα οδήγησης Gecko μπορεί επίσης να αρχικοποιηθεί χρησιμοποιώντας την ιδιότητα marionette όπως παρακάτω

System.setProperty ("webdriver.gecko.driver", "D: \\ Λήψεις \\ GeckoDriver.exe");

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

3. Χρήση του FirefoxOptions:

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

Επιλογές FirefoxOptions = νέο FirefoxOptions ();options.setLegacy (true);

Κωδικός για την εκκίνηση του firefox χρησιμοποιώντας το πρόγραμμα οδήγησης Gecko:

πακέτο com.guru99.demo;εισαγωγή org.junit. Μετά;εισαγωγή org.junit. Πριν;εισαγωγή org.junit.Test;εισαγωγή org.openqa.selenium.WebDriver;εισαγωγή org.openqa.selenium.firefox.FirefoxDriver;εισαγωγή org.openqa.selenium.remote.DesiredCapabilities;δημόσια τάξη GeckoDriverDemo {String driverPath = "D: \\ Guru99Demo \\ GeckoDriver.exe";δημόσιο πρόγραμμα οδήγησης WebDriver;@Πρινpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", driverPath);Δυνατότητες DesiredCapabilities = DesiredCapabilities.firefox ();δυνατότητες.setCapability ("marionette", true);driver = νέο FirefoxDriver (δυνατότητες);}@Δοκιμήpublic void navigateToUrl () {driver.get ("http://demo.guru99.com/selenium/guru99home/");}@Μετάpublic void endTest () {driver.quit ();}}

Επεξήγηση κώδικα:

Πριν από τη μέθοδο:

Αρχικά, πρέπει να ορίσουμε την ιδιότητα συστήματος για το πρόγραμμα οδήγησης gecko στη θέση λήψης του αρχείου geckdriver.exe. Πρέπει να ορίσουμε την ιδιότητα της μαριονέτας σε πραγματική τιμή ώστε το Selenium να χρησιμοποιεί το πρωτόκολλο Marionette για επικοινωνία με το Gecko Driver. Τέλος, πρέπει να ξεκινήσουμε την παρουσία του προγράμματος περιήγησης Firefox χρησιμοποιώντας το αντικείμενο για τις επιθυμητές δυνατότητες.

Οι παρακάτω δηλώσεις βοηθούν στην επίτευξη της παραπάνω εργασίας.

System.setProperty ("webdriver.gecko.driver", driverPath);Δυνατότητες DesiredCapabilities = DesiredCapabilities.firefox ();δυνατότητες.setCapability ("marionette", true);driver = νέο FirefoxDriver (δυνατότητες);

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

Πηγαίνουμε σε διεύθυνση URL που καθορίζεται από τον χρήστη χρησιμοποιώντας την ενσωματωμένη μέθοδο "get" που παρέχεται από το πρόγραμμα οδήγησης ιστού Selenium Η παρακάτω δήλωση βοηθά στην επίτευξη του ίδιου.

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

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

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

driver.quit ();

Τροποποιήστε ένα σενάριο για μη Gecko σε Gecko:

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

@Πρινpublic void startBrowser () {πρόγραμμα οδήγησης = νέο FirefoxDriver ();}

Για να μετατρέψετε σε gecko, πρέπει απλώς να προσθέσετε μια γραμμή κώδικα

@Πρινpublic void startBrowser () {System.setProperty ("webdriver.gecko.driver", "D: \\ Λήψεις \\ GeckoDriver.exe");πρόγραμμα οδήγησης = νέο FirefoxDriver ();}

Συχνές εξαιρέσεις προέκυψαν κατά τη χρήση του προγράμματος οδήγησης Gecko:

Ακολουθεί μια λίστα με τις κοινές εξαιρέσεις που εμφανίζονται κατά τη χρήση του προγράμματος οδήγησης Gecko και με ανάλυση.

1. Η διαδρομή προς το εκτελέσιμο πρόγραμμα οδήγησης πρέπει να οριστεί από την ιδιότητα συστήματος webdriver.gecko.driver:

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

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

System.setProperty ("webdriver.gecko.driver", "D: \\ Λήψεις \\ geckodriver.exe");

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

2. Εξαίρεση Firefox Not Connected:

org.openqa.selenium.firefox.NotConnectedException: Δεν είναι δυνατή η σύνδεση με τον κεντρικό υπολογιστή 127.0.0.1 στη θύρα 7055 μετά από 45000 ms.

Αυτή η εξαίρεση συμβαίνει συνήθως όταν η έκδοση του Firefox έχει αναβαθμιστεί στην τελευταία έκδοση. Το ψήφισμα για αυτήν την εξαίρεση είναι να ενημερώσετε το αρχείο βάζου σεληνίου και το πρόγραμμα οδήγησης gecko στην τελευταία έκδοση και να χρησιμοποιήσετε το ίδιο.

3. Εξαίρεση περιόδου σύνδεσης που δεν δημιουργήθηκε:

org.openqa.selenium.SessionNotCreatedException: Δεν είναι δυνατή η δημιουργία νέας απομακρυσμένης περιόδου σύνδεσης.

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

4. Εξαίρεση από άρνηση σύνδεσης:

Εξαίρεση WebDriver: Δεν επιτρέπεται η σύνδεση

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

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