Selenium Firefox Προφίλ: Οδηγός εγκατάστασης

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

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

  • 🔘 Βασικά στοιχεία προφίλ: A Firefox Το προφίλ περιέχει τους σελιδοδείκτες ενός χρήστη, τους αποθηκευμένους κωδικούς πρόσβασης, τα πρόσθετα, τα πιστοποιητικά και τις προτιμήσεις σε έναν μόνο φάκελο.
  • ☑️ Τοποθεσία προφίλ: Windows, Linux και macOS κάθε φάκελος προφίλ αποθηκεύεται σε διαφορετική διαδρομή μέσα στον κατάλογο χρήστη.
  • Δημιουργία προφίλ: Ο ενσωματωμένος διαχειριστής προφίλ ανοίγει με την εντολή firefox.exe -p και δημιουργεί ένα καθαρό προφίλ αυτοματισμού σε πέντε βήματα.
  • 🧪 Code πρόσβαση: Η κλάση ProfilesIni διαβάζει το profiles.ini και το getProfile επιστρέφει το επώνυμο προφίλ ως FirefoxΑντικείμενο προφίλ.
  • Τρέχουσα σύνταξη: Selenium Τα 3 και 4 περνούν το προφίλ μέσα από FirefoxOptions.setProfile αντί για το FirefoxΚατασκευαστής προγράμματος οδήγησης.
  • ⚠️ προτιμήσεις: Το setPreference ελέγχει τον φάκελο λήψης, τις ειδοποιήσεις, τη γλώσσα και τον χειρισμό πιστοποιητικών πριν από την εκκίνηση του προγράμματος περιήγησης.

Selenium Firefox Οδηγός ρύθμισης προφίλ

Selenium Firefox Προφίλ ⬇️

Firefox Το προφίλ είναι η συλλογή ρυθμίσεων, προσαρμογών, πρόσθετων και άλλων ρυθμίσεων εξατομίκευσης που μπορούν να γίνουν στο Firefox Browser. Μπορείτε να προσαρμόσετε Firefox προφίλ που ταιριάζει σε εσάς Selenium απαίτηση αυτοματισμού.

Έτσι, Firefox ή οποιοδήποτε άλλο πρόγραμμα περιήγησης χειρίζεται τις ρυθμίσεις πιστοποιητικών SSL. Έτσι, η αυτοματοποίησή τους έχει πολύ νόημα μαζί με τον κώδικα εκτέλεσης της δοκιμής.

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

Θέση του φακέλου του προφίλ σας στο δίσκο

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

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

Firefox φάκελος προφίλ που εμφανίζεται στον δίσκο με το τυχαίο πρόθεμά του

Η τοποθεσία του προφίλ είναι η εξής

  • Για Windows > C:\Χρήστες\ \AppData\Roaming\Mozilla\Firefox\Profiles\όνομα_προφίλ.προεπιλογή
  • Για Linux > ~/.mozilla/firefox/όνομα_προφίλ.προεπιλογή/
  • Για Mac OS X > ~/Βιβλιοθήκη/Υποστήριξη εφαρμογών/Firefox/Profiles/profile_name.default/

Για να τρέξει μια επιτυχημένη Selenium Δοκιμή, α Firefox το προφίλ πρέπει να είναι -

  • Εύκολη φόρτωση
  • Ρυθμίσεις διακομιστή μεσολάβησης εάν απαιτείται
  • Άλλες ρυθμίσεις για τον χρήστη που βασίζονται στις ανάγκες αυτοματισμού

Πώς να ρυθμίσετε Firefox Προφίλ για Selenium Δοκιμές

Ας δούμε βήμα προς βήμα πώς να δημιουργήσουμε ένα Firefox προφίλ.

Βήμα 1) Κλείστε το Firefox πρόγραμμα περιήγησης

Στο πρώτο βήμα, κλείστε Firefox αν είναι ήδη ανοιχτό. Ο διαχειριστής προφίλ δεν θα ξεκινήσει ενώ υπάρχει Firefox το παράθυρο τρέχει.

Βήμα 2) Open Run (Windows πλήκτρο + R) και πληκτρολογήστε firefox.exe –p

Το παράθυρο διαλόγου Εκτέλεση θα πρέπει να μοιάζει με το παρακάτω στιγμιότυπο οθόνης πριν πατήσετε OK.

Windows Εκτελέστε το παράθυρο διαλόγου με την εντολή firefox.exe -p πληκτρολογημένη

Σημείωση: Εάν δεν ανοίξει, μπορείτε να δοκιμάσετε να χρησιμοποιήσετε την πλήρη διαδρομή μέσα σε εισαγωγικά.

  • Σε 32 bit Windows: “C:\Program Files\Mozilla Firefox\firefox.exe” –p
  • Σε 64 bit Windows (32-bit Firefox): "C:\Program Files (x86)\Mozilla Firefox\firefox.exe” –p

Βήμα 3) Επιλέξτε προφίλ χρήστη

Τώρα, ένα παράθυρο διαλόγου με το όνομα Firefox θα ανοίξει, όπως φαίνεται παρακάτω.

Firefox Παράθυρο διαλόγου Επιλογή προφίλ χρήστη που παραθέτει τα υπάρχοντα προφίλ

Βήμα 4) Δημιουργία προφίλ

Επιλέξτε την επιλογή Δημιουργία προφίλ που εμφανίζεται στο επόμενο στιγμιότυπο οθόνης για να ξεκινήσετε τον οδηγό.

Η οθόνη υποδοχής του Οδηγού δημιουργίας προφίλ στην Firefox διαχειριστής προφίλ

Τώρα, επιλέξτε Δημιουργία προφίλ από το παράθυρο και θα ανοίξει ένας οδηγός. Κάντε κλικ στο επόμενο.

Βήμα 5) Δώστε το όνομα του προφίλ σας

Πληκτρολογήστε ένα όνομα για το προφίλ αυτοματισμού στο πεδίο που επισημαίνεται παρακάτω και ολοκληρώστε τον οδηγό.

Εισάγοντας ένα νέο Firefox όνομα προφίλ στον Οδηγό δημιουργίας προφίλ

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

Θα παρατηρήσετε ότι το νέο Firefox Το παράθυρο δεν θα εμφανίζει κανέναν από τους Σελιδοδείκτες και τα Αγαπημένα σας εικονίδια.

Σημείωση: Το τελευταίο επιλεγμένο προφίλ θα φορτωθεί αυτόματα την επόμενη φορά. Firefox εκτόξευση. Εάν θέλετε να αλλάξετε προφίλ, θα χρειαστεί να κάνετε επανεκκίνηση του διαχειριστή προφίλ.

Σενάριο αυτοματισμού για Selenium

Αφού δημιουργηθεί το προφίλ, το επόμενο βήμα είναι να το φορτώσετε από τον κώδικα. Για να αποκτήσετε πρόσβαση στο νέο προφίλ Firefox προφίλ σε ένα Selenium Για τη δοκιμή του λογισμικού WebDriver, πρέπει να χρησιμοποιήσουμε την ενσωματωμένη κλάση ProfilesIni του WebDriver και τη μέθοδό της getProfile όπως φαίνεται παρακάτω.

⚠️ Σημείωση έκδοσης: τα αποσπάσματα σε αυτήν την ενότητα είναι τα πρωτότυπα Selenium 2η μορφή. Στην τρέχουσα Selenium απελευθερώνει την τάξη που ζει μέσα org.openqa.selenium.firefox.ProfilesIni - ο .εσωτερικός το υπο-πακέτο απορρίφθηκε — και το προφίλ παραδίδεται στον οδηγό μέσω FirefoxΕπιλογές. Δείτε το FirefoxΗ ενότητα επιλογών παρακάτω για το σύγχρονο ισοδύναμο.

Selenium κωδικός για το προφίλ

Αυτός είναι ένας κώδικας για την υλοποίηση ενός προφίλ, ο οποίος μπορεί να ενσωματωθεί στο Selenium κώδικας.

ProfilesIni profile = new ProfilesIni();

// αυτό θα δημιουργήσει ένα αντικείμενο για το Firefox λογαριασμό σας

FirefoxProfile myprofile = profile.getProfile("xyzProfile");

// αυτό θα εκκινήσει το Firefox οδηγός

WebDriver driver = new FirefoxDriver(myprofile)

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

Firefox Παράδειγμα προφίλ 1

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

Firefox Παράδειγμα προφίλ 1 σενάριο που φορτώνει ένα προφίλ με βάση το όνομα στον επεξεργαστή

// import the package
import java.io.File;
      import java.util.concurrent.TimeUnit;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;
public class FirefoxProfile {
 	public static void main(String[] args) {
	ProfilesIni profile = new ProfilesIni();
	FirefoxProfile myprofile = profile.getProfile("xyzProfile");
// Initialize Firefox driver
	WebDriver driver = new FirefoxDriver(myprofile);
//Maximize browser window
	driver.manage().window().maximize();
//Go to URL which you want to navigate
	driver.get("http://www.google.com");
//Set  timeout  for 5 seconds so that the page may load properly within that time
	driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//close firefox browser
	driver.close();
}

}

Επεξήγηση για τον κώδικα

Παρακάτω είναι η εξήγηση του κώδικα γραμμή προς γραμμή.

  • Code γραμμή 2-7: Πρώτα απ 'όλα πρέπει να εισαγάγουμε το πακέτο που απαιτείται για την εκτέλεση του Selenium κώδικας.
  • Code γραμμή 8: Δημιουργήστε μια δημόσια τάξη "FirefoxΠροφίλ."
  • Code γραμμή 9: Δημιουργήστε ένα αντικείμενο (πρέπει να έχετε βασικές γνώσεις των εννοιών OOP).
  • Code γραμμή 10-11: Πρέπει να κάνουμε αρχικοποίηση Firefox προφίλ με το αντικείμενο του προφίλ μου.
  • Code γραμμή 13: Δημιουργία αντικειμένου για Firefox.
  • Code γραμμή 15: Μεγιστοποίηση παραθύρου.
  • Code γραμμή 17: το driver.get χρησιμοποιείται για την πλοήγηση στο δεδομένο URL.
  • Code γραμμή 19: Η ρύθμιση χρονικού ορίου χρησιμοποιείται για να περιμένει κάποιος χρόνος, ώστε το πρόγραμμα περιήγησης να φορτώσει τη σελίδα πριν προχωρήσει στην επόμενη σελίδα.
  • Code γραμμή 21: Κλείσιμο Firefox.

Ας δούμε ένα ακόμη παράδειγμα.

Firefox Παράδειγμα προφίλ 2

Το δεύτερο παράδειγμα παρακάμπτει το profiles.ini και δείχνει απευθείας στον φάκελο προφίλ, όπως φαίνεται στο στιγμιότυπο οθόνης του προγράμματος επεξεργασίας.

Firefox Παράδειγμα προφίλ 2 σεναρίου κατάδειξης FirefoxΠροφίλ σε μια διαδρομή φακέλου

import java.io.File;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;

public class FirefoxProfile2{
public static void main(String[] args) {

// Create object for FirefoxProfile
	FirefoxProfilemyprofile=newFirefoxProfile (newFile("\c:users\AppData\MozillaFirefoxProfile_name.default "));  
// Initialize Firefox driver    
	WebDriver driver = new FirefoxDriver(myprofile);
//Maximize browser window       
	driver.manage().window().maximize();
//Go to URL      
	driver.get("http://www.google.com");
//Set  timeout      
	driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//close firefox browser  
	driver.close();
    }

Επεξήγηση για τον κώδικα

Παρακάτω είναι η εξήγηση του κώδικα γραμμή προς γραμμή.

  • Code γραμμή 1-6: Πρώτα απ 'όλα πρέπει να εισαγάγουμε το πακέτο που απαιτείται για την εκτέλεση του Selenium κώδικας.
  • Code γραμμή 8: Δημιουργήστε μια δημόσια τάξη FirefoxΠροφίλ2.
  • Code γραμμή 12: Δημιουργήστε το αντικείμενο του myprofile αναφερόμενοι στην ακριβή διαδρομή.
  • Code γραμμή 14: Δημιουργία αντικειμένου για Firefox.
  • Code γραμμή 16: Μεγιστοποίηση παραθύρου.
  • Code γραμμή 18: το driver.get χρησιμοποιείται για την πλοήγηση στο δεδομένο URL.
  • Code γραμμή 20: Η ρύθμιση χρονικού ορίου χρησιμοποιείται για να περιμένει κάποιος χρόνος, ώστε το πρόγραμμα περιήγησης να φορτώσει τη σελίδα πριν προχωρήσει στην επόμενη σελίδα.
  • Code γραμμή 22: Κλείσιμο Firefox.

Σημειώστε ότι η διαδρομή σε αυτό το απόσπασμα είναι γραμμένη ακριβώς όπως την δείχνει το αρχικό σεμινάριο. Σε έναν πραγματικό υπολογιστή, οι ανάστροφες καθέτους πρέπει να έχουν χαρακτήρα διαφυγής, για παράδειγμα "C:\\Users\\guru99\\AppData\\Roaming\\Mozilla\\Firefox\\Προφίλ\\xyzProfile.default”.

Πώς να χρησιμοποιήσετε Firefox προφίλ Selenium 4 με FirefoxΕπιλογές

Και τα δύο παραπάνω παραδείγματα μεταγλωττίζονται μόνο σε Selenium 2. Δύο πράγματα άλλαξαν αργότερα, και κάθε τρέχον σεμινάριο χρησιμοποιεί τη νεότερη μορφή.

  • Το ProfilesIni μετακινήθηκε από το εσωτερικός υποπακέτο, επομένως η εισαγωγή είναι τώρα org.openqa.selenium.firefox.ProfilesIni.
  • The FirefoxΟδηγός(Firefox(Ο κατασκευαστής προφίλ) αφαιρέθηκε. Το προφίλ είναι συνδεδεμένο σε ένα Firefoxαντικείμενο Options και το αντικείμενο options διαβιβάζεται στον οδηγό.
  • Selenium 4 χρονικά όρια λαμβάνουν ένα java.time.Duration αντί για μια τιμή συν ένα TimeUnit, επομένως το implicitlyWait(5, TimeUnit.SECONDS) γίνεται implicitlyWait(Duration.ofSeconds(5)).

Ο παρακάτω πίνακας αντιστοιχίζει κάθε κλήση παλαιού τύπου με την αντικατάστασή της.

Κλήση παλαιού τύπου (Selenium 2) Τρέχουσα κλήση (Selenium 3 και 4)
εισαγωγή org.openqa.selenium.firefox.internal.ProfilesIni; εισαγωγή org.openqa.selenium.firefox.ProfilesIni;
νέος FirefoxΟδηγός (το προφίλ μου) options.setProfile(myprofile); νέο FirefoxΟδηγός (επιλογές)
implicitlyWait(5, Μονάδα Χρόνου.ΔΕΥΤΕΡΟΛΕΠΤΑ) implicitlyWait(ΔιάρκειαΔευτερόλεπτων(5))
System.setProperty για το geckodriver Επιλύθηκε αυτόματα από Selenium Manager

Ξαναγραμμένο σε σχέση με μια τρέχουσα έκδοση, το Παράδειγμα 1 μοιάζει με αυτό.

import java.time.Duration;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;

public class FirefoxProfileSelenium4 {
    public static void main(String[] args) {
        ProfilesIni allProfiles = new ProfilesIni();
        FirefoxProfile myprofile = allProfiles.getProfile("xyzProfile");

        FirefoxOptions options = new FirefoxOptions();
        options.setProfile(myprofile);

        WebDriver driver = new FirefoxDriver(options);
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
        driver.get("https://www.google.com");
        driver.quit();
    }
}

Η ίδια η αναζήτηση προφίλ δεν έχει αλλάξει: Το ProfilesIni εξακολουθεί να διαβάζει το profiles.ini από το Firefox Ο φάκελος application-data και το getProfile εξακολουθούν να επιστρέφουν null όταν το όνομα δεν ταιριάζει με ένα προφίλ, επομένως αξίζει να προσθέσετε έναν έλεγχο null πριν από την εκκίνηση του προγράμματος οδήγησης. Το ίδιο αντικείμενο options φέρει επίσης τα ορίσματα που χρησιμοποιούνται αλλού, όπως αυτά για μεγιστοποίηση ή αλλαγή μεγέθους του παραθύρου του προγράμματος περιήγησης.

Πώς να ρυθμίσετε Firefox Προτιμήσεις προφίλ σε Selenium

Ένα αποθηκευμένο προφίλ είναι μόνο η μισή ιστορία. Οι περισσότερες αυτοματοποιήσεις απαιτούν μια χούφτα προτιμήσεων που εφαρμόζονται στον κώδικα, επομένως η ίδια συμπεριφορά ακολουθεί τη σουίτα σε οποιοδήποτε μηχάνημα. Η μέθοδος setPreference γράφει αυτές τις τιμές στο αντίγραφο του προφίλ πριν Firefox ξεκινά.

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", "C:\\selenium-downloads");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
profile.setPreference("dom.webnotifications.enabled", false);
profile.setPreference("intl.accept_languages", "es");

FirefoxOptions options = new FirefoxOptions();
options.setProfile(profile);
WebDriver driver = new FirefoxDriver(options);

Οι παρακάτω προτιμήσεις καλύπτουν τις περιπτώσεις που εμφανίζονται συχνότερα στην καθημερινή σύνταξη σεναρίων.

Προτίμηση Τι ελέγχει
browser.download.folderList Ορίστε σε 2 για να χρησιμοποιήσετε έναν προσαρμοσμένο φάκελο λήψεων αντί για τον προεπιλεγμένο φάκελο συστήματος.
browser.download.dir Η απόλυτη διαδρομή Firefox αποθηκεύει τις λήψεις σε.
browser.helperApps.neverAsk.saveToDisk Οι τύποι MIME αποθηκεύτηκαν χωρίς να εμφανίζεται το παράθυρο διαλόγου λήψης.
οικ. διαδικτυακές ειδοποιήσεις. ενεργοποιημένη Ορίστε την τιμή σε false για να απενεργοποιήσετε τις ειδοποιήσεις push στο web.
intl.accept_languages Η κεφαλίδα Accept-Language, χρήσιμη για εκτελέσεις τοπικής προσαρμογής.
general.usagent.override Αντικαθιστά τη συμβολοσειρά παράγοντα χρήστη που αποστέλλεται από το πρόγραμμα περιήγησης.

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

Κοινός Firefox Σφάλματα προφίλ σε Selenium και πώς να τα διορθώσετε

Τα προβλήματα προφίλ συνήθως εμφανίζονται ως σφάλμα μεταγλώττισης ή ως άνοιγμα προγράμματος περιήγησης με λανθασμένες ρυθμίσεις. Ο πίνακας παραθέτει τις αποτυχίες που αναφέρονται συχνότερα, μαζί με την αιτία της καθεμίας.

Σύμπτωμα Αιτία σταθερός
Ο κατασκευαστής FirefoxΟδηγός(FirefoxΤο προφίλ) δεν έχει οριστεί Ο κατασκευαστής αφαιρέθηκε μετά Selenium 2. Τυλίξτε το προφίλ μέσα FirefoxΕπιλογές και να περάσει το αντικείμενο επιλογών αντ' αυτού.
Δεν είναι δυνατή η επίλυση του import org.openqa.selenium.firefox.internal.ProfilesIni Η κλάση μετακινήθηκε εκτός του εσωτερικού υποπακέτου. Εισαγωγή του αρχείου org.openqa.selenium.firefox.ProfilesIni.
NullPointerException στο getProfile Το όνομα του προφίλ δεν ταιριάζει με καμία καταχώρηση στο profiles.ini. Ανοίξτε ξανά τον διαχειριστή προφίλ και αντιγράψτε ακριβώς το όνομα, συμπεριλαμβανομένων των πεζών-κεφαλαίων.
Σας Firefox Δεν είναι δυνατή η φόρτωση του προφίλ. Ενδέχεται να λείπει ή να μην είναι προσβάσιμο. Άλλος Firefox Η παρουσία περιέχει ήδη το προφίλ ή η διαδρομή του φακέλου είναι λανθασμένη. Κλείσιμο κάθε Firefox παράθυρο και, στη συνέχεια, επαληθεύστε τη διαδρομή σε σχέση με τις τοποθεσίες που αναφέρονται παραπάνω.
Μια προτίμηση δεν έχει καμία επίδραση Ορίστηκε μετά την εκκίνηση του προγράμματος οδήγησης ή το WebDriver το δεσμεύει. Μετακινήστε κάθε κλήση setPreference πάνω από το FirefoxΚατασκευαστής προγράμματος οδήγησης.

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

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

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

Ναι. Οποιαδήποτε επέκταση είναι εγκατεστημένη στο προφίλ φορτώνει με το πρόγραμμα περιήγησης. Μπορείτε επίσης να καλέσετε την εντολή profile.addExtension(new File(“path/to/extension.xpi”)) για να επισυνάψετε μία κατά τον χρόνο εκτέλεσης, διατηρώντας έτσι καθαρό το προφίλ στον δίσκο.

Python δεν έχει ισοδύναμο ProfilesIni. Σημείο FirefoxProfile στον κατάλογο profile και, στη συνέχεια, αντιστοιχίστε το στο options.profile πριν δημιουργήσετε το πρόγραμμα οδήγησης. Selenium Python συνδέσεις και στη συνέχεια κλωνοποιήστε αυτόν τον φάκελο ακριβώς όπως Java κάνει.

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

GitHub Copilot παράγει γρήγορα το στερεότυπο, αλλά συχνά εκπέμπει το αφαιρεμένο FirefoxΟδηγός(FirefoxΠροφίλ) κατασκευαστής που έμαθε από παλαιότερο κώδικα. Να επιβεβαιώνετε πάντα ότι οι χρήσεις της πρότασης FirefoxOptions.setProfile και το τρέχον πακέτο πριν από την υποβολή του.

Ναι. Καλέστε το options.addArguments(“-headless”) παράλληλα με το options.setProfile(profile). Το προφίλ παρέχει προτιμήσεις και επεκτάσεις ακριβώς όπως πριν, αφού η λειτουργία headless αλλάζει μόνο τον τρόπο Firefox αποδόσεις, όχι ο τρόπος που διαβάζει τον κατάλογο προφίλ του.

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

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

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