Selenium Firefox Profil: Beállítási útmutató

⚡ Okos összefoglaló

Firefox A profil tárolja az adott böngészőfelhasználóhoz tartozó könyvjelzőket, jelszavakat, bővítményeket és beállításokat, és Selenium A WebDriver képes betölteni egy dedikált profilt, így minden automatizált futtatás azonos, kiszámítható böngészőállapotból indul.

  • 🔘 Profil alapjai: A Firefox A profil egyetlen mappában tárolja egy felhasználó könyvjelzőit, mentett jelszavait, bővítményeit, tanúsítványait és beállításait.
  • ☑️ Profil helye: Windows, Linux és macOS mindegyik profilmappát a felhasználói könyvtáron belül más elérési úton tárolja.
  • Profil létrehozása: A beépített profilkezelő a firefox.exe -p paranccsal nyílik meg, és öt lépésben létrehoz egy tiszta automatizálási profilt.
  • 🧪 Code hozzáférés: A ProfilesIni osztály beolvassa a profiles.ini fájlt, és a getProfile függvény visszaadja a megnevezett profilt egy FirefoxProfil objektum.
  • 🇧🇷 Jelenlegi szintaxis: Selenium A 3. és 4. ábra áthalad a profilon FirefoxOptions.setProfile helyett a FirefoxIllesztőprogram-konstruktor.
  • ⚠️ Beállítások: A setPreference vezérli a letöltési mappát, az értesítéseket, a nyelvet és a tanúsítványok kezelését a böngésző indítása előtt.

Selenium Firefox Profilbeállítási útmutató

Selenium Firefox profil

Firefox A profil a beállítások, testreszabások, kiegészítők és egyéb személyre szabási beállítások gyűjteménye, amelyek a webhelyen elvégezhetők Firefox Browser. Testreszabhatja Firefox profilt, hogy megfeleljen az önnek Selenium automatizálási követelmény.

Szóval, Firefox vagy bármely más böngésző kezeli az SSL-tanúsítványok beállításait. Így ezek automatizálása a tesztvégrehajtási kóddal együtt nagyon logikus.

Röviden, a profil a felhasználó személyes beállításait jelenti. Ha megbízható profilt szeretne futtatni automatizálás a Firefox böngészővel kapcsolatban ajánlott külön profilt létrehozni. Egy dedikált profil a mindennapi böngészési adatokat is kihagyja a tesztfutásból, ami az első dolog, amit ki kell zárni, amikor egy Selenium A szkript két gépen másképp viselkedik.

A profilmappa helye a lemezen

Firefox profil olyan, mint a különböző felhasználók Firefox. Firefox személyes adatokat, például könyvjelzőket, jelszavakat és felhasználói beállításokat ment, amelyek szerkeszthetők, törölhetők vagy létrehozhatók a profilkezelő segítségével.

Az alábbi képernyőkép egy profilmappát mutat be, ahogyan az a lemezen megjelenik, a profilról elnevezve, egy véletlenszerű előtaggal.

Firefox a lemezen látható profilmappa véletlenszerű előtaggal

A profil helye a következő

  • Minden Windows > C:\Felhasználók\ \AppData\Roaming\Mozilla\Firefox\Profilok\profil_neve.alapértelmezett
  • Minden Linux > ~/.mozilla/firefox/profil_neve.default/
  • Mac OS X esetén > ~/Library/Application Support/Firefox/Profiles/profile_name.default/

A sikeres futtatás érdekében Selenium Teszt, a Firefox a profilnak -

  • Könnyen betölthető
  • Ha szükséges, a proxy beállításai
  • Egyéb felhasználó-specifikus beállítások az automatizálási igények alapján

Hogyan állítsuk be Firefox Profil a következőhöz: Selenium Tesztek

Nézzük meg lépésről lépésre, hogyan kell létrehozni egy Firefox profil.

Step 1) Csukja be a Firefox böngésző

Az első lépésben zárja be Firefox ha már meg van nyitva. A profilkezelő nem indul el, amíg a Firefox ablak fut.

Step 2) Nyissa meg a Futtatást (Windows gomb + R), és írja be a firefox.exe –p

A Futtatás párbeszédpanelnek az alábbi képernyőképhez hasonlóan kell kinéznie, mielőtt megnyomná az OK gombot.

Windows Futtassa a párbeszédablakot a firefox.exe -p paranccsal beírva

Megjegyzés: Ha nem nyílik meg, megpróbálhatja idézőjelek közé tett teljes elérési utat használni.

  • 32 biten Windows„C:\Program Files\Mozilla” Firefox\firefox.exe” –p
  • 64 biten Windows (32 bites Firefox): „C:\Program Files (x86)\Mozilla” Firefox\firefox.exe” –p

Step 3) Válasszon felhasználói profilt

Most egy párbeszédpanel, melynek neve Firefox megnyílik, ahogy az alább látható.

Firefox Felhasználói profil kiválasztása párbeszédpanel, amely felsorolja a meglévő profilokat

Step 4) Profil létrehozása

A varázsló elindításához válassza a következő képernyőképen látható Profil létrehozása lehetőséget.

Profil létrehozása varázsló üdvözlőképernyője a Firefox profilkezelő

Most válassza a Profil létrehozása lehetőséget az ablakban, és megnyílik egy varázsló. Kattintson a következőre.

Step 5) Adja meg profilnevét

Írjon be egy nevet az automatizálási profilnak az alább kiemelt mezőbe, és fejezze be a varázslót.

Új belépése Firefox profil neve a Profil létrehozása varázslóban

Most a profilja készen van, kiválaszthatja profilját, és megnyithatja FirefoxInnentől kezdve a profil úgy viselkedik, mint bármely más böngésző-munkamenet, tehát egy első WebDriver szkript változatlanul fog ellene indulni.

Észre fogja venni, hogy az új Firefox ablakban nem jelennek meg a Könyvjelzők és a Kedvencek ikonjai.

Megjegyzés: A legutóbb kiválasztott profil automatikusan betöltődik a következő alkalommal. Firefox dob. Ha profilt szeretne változtatni, újra kell indítania a Profilkezelőt.

Automatizálási szkript ehhez Selenium

A létrehozott profil után a következő lépés a kódból való betöltése. Az újonnan létrehozott profil eléréséhez Firefox profil egy Selenium A WebDriver szoftver teszteléséhez a WebDriver beépített ProfilesIni osztályát és a getProfile metódusát kell használnunk az alábbiak szerint.

⚠️ Verzió megjegyzés: az ebben a részben található részletek az eredetiek Selenium 2. forma. Jelenlegi Selenium kiadja az osztály lakóit org.openqa.selenium.firefox.ProfilesIni - a .belső az alcsomagot elvetették – és a profilt a rendszer átadja a sofőrnek FirefoxOpciók. Lásd a FirefoxA modern megfelelőjéhez tartozó opciók részben talál további információkat.

Selenium kód a profilhoz

Ez egy kód egy profil megvalósításához, amely beágyazható a Selenium kód.

ProfilesIni profile = new ProfilesIni();

// ez létrehoz egy objektumot a Firefox profilok

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

// ezzel inicializálja a Firefox gépkocsivezető

WebDriver driver = new FirefoxDriver(myprofile)

Nézzük meg ennek a kódnak a megvalósítását a következő példákban.

Firefox Profilpélda 1

Az első példa név alapján tölt be egy profilt. Az alábbi képernyőkép ugyanazt a szkriptet mutatja a szerkesztőben.

Firefox Profil Példa 1 szkript, amely név szerint tölt be egy profilt a szerkesztőben

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

}

Magyarázat a kódhoz

Az alábbiakban soronként olvasható a kód magyarázata.

  • Code 2-7. sor: Először is importálnunk kell a futtatásához szükséges csomagot. Selenium kód.
  • Code 8. sor: Hozz létre egy nyilvános osztályt “FirefoxProfil."
  • Code 9. sor: Hozz létre egy objektumot (alapvető ismeretekkel kell rendelkezned az OOP-ok koncepcióiról).
  • Code 10-11. sor: Inicializálnunk kell Firefox profil a myprofile objektummal.
  • Code 13. sor: Objektum létrehozása a következőhöz: Firefox.
  • Code 15. sor: Ablak maximalizálása.
  • Code 17. sor: a driver.get függvény a megadott helyre navigál URL.
  • Code 19. sor: Az időtúllépés beállításával várunk egy bizonyos ideig, amíg a böngésző betöltheti az oldalt, mielőtt a következő oldalra lépne.
  • Code 21. sor: Bezárás Firefox.

Lássunk még egy példát.

Firefox Profilpélda 2

A második példa kihagyja a profiles.ini fájlt, és közvetlenül a profile mappára mutat, ahogy a szerkesztő képernyőképe is mutatja.

Firefox 2. profilpélda szkript mutat FirefoxProfil egy mappa elérési útján

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

Magyarázat a kódhoz

Az alábbiakban soronként olvasható a kód magyarázata.

  • Code 1-6. sor: Először is importálnunk kell a futtatásához szükséges csomagot. Selenium kód.
  • Code 8. sor: Hozz létre egy nyilvános osztályt Firefox2. profil.
  • Code 12. sor: A myprofile objektumát a pontos elérési útra való hivatkozással kell létrehozni.
  • Code 14. sor: Objektum létrehozása a következőhöz: Firefox.
  • Code 16. sor: Ablak maximalizálása.
  • Code 18. sor: a driver.get függvény a megadott helyre navigál URL.
  • Code 20. sor: Az időtúllépés beállításával várunk egy bizonyos ideig, amíg a böngésző betöltheti az oldalt, mielőtt a következő oldalra lépne.
  • Code 22. sor: Bezárás Firefox.

Megjegyzendő, hogy az ebben a kódrészletben szereplő elérési út pontosan úgy van megírva, ahogy az eredeti oktatóanyagban látható. Egy valódi gépen a fordított perjeleket el kell távolítani, például: „C:\\Users\\guru99\\AppData\\Roaming\\Mozilla\\Firefox\\Profilok\\xyzProfile.alapértelmezett”.

Hogyan kell használni a Firefox Profil Selenium 4 a FirefoxOpciók

Mindkét fenti példa csak a következő ellen fordulhat le: Selenium 2. Két dolog változott utána, és minden jelenlegi oktatóanyag az újabb formát használja.

  • A ProfilesIni kiköltözött a következőből: belső alcsomag, így az import mostantól org.openqa.selenium.firefox.ProfilesIni.
  • Az FirefoxIllesztőprogram(FirefoxA Profil) konstruktor eltávolításra került. A profil egyhez van csatolva. FirefoxOptions objektum, és az options objektum átadásra kerül az illesztőprogramnak.
  • Selenium 4 időtúllépés esetén a java.time.Duration paramétert kell használni egy érték és egy TimeUnit helyett, így az implicitlyWait(5, TimeUnit.SECONDS) implicitlyWait(Duration.ofSeconds(5)) lesz.

Az alábbi táblázat minden egyes korábbi hívást a helyettesítőjére rendel le.

Régi hívás (Selenium 2) Jelenlegi hívás (Selenium 3. és 4.)
import org.openqa.selenium.firefox.internal.ProfilesIni; import org.openqa.selenium.firefox.ProfilesIni;
új FirefoxSofőr(profilom) options.setProfil(profilom); new FirefoxIllesztőprogram (opciók)
implicitlyWait(5, Időegység.MÁSODPERC) implicitWait(MásodpercIdőtartam(5))
System.setProperty a geckodriverhez Automatikusan megoldva a következő által: Selenium menedzser

Egy aktuális kiadás alapján átírva, az 1. példa így néz ki.

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

Maga a profilkeresés változatlan: a ProfilesIni továbbra is a profiles.ini fájlból olvassa a profiles.ini fájlt. Firefox Az application-data mappa és a getProfile függvény továbbra is null értéket ad vissza, ha a név nem egyezik meg egy profillal, ezért érdemes egy null ellenőrzést elvégezni az illesztőprogram indulása előtt. Ugyanez az options objektum tartalmazza a máshol használt argumentumokat is, például a következőhöz tartozókat: a böngészőablak maximalizálása vagy átméretezése.

Hogyan állítsuk be Firefox Profilbeállítások itt: Selenium

Egy mentett profil csak a történet fele. A legtöbb automatizáláshoz néhány, a kódban alkalmazott beállítás szükséges, így ugyanaz a viselkedés követi a csomagot bármely gépen. A setPreference metódus ezeket az értékeket a profil másolatába írja, mielőtt Firefox indít.

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

Az alábbi beállítások a mindennapi szkriptelés során leggyakrabban előforduló eseteket fedik le.

Előny Mit szabályoz
browser.download.folderList Állítsd 2-re, ha egyéni letöltési mappát szeretnél használni a rendszer alapértelmezett mappája helyett.
browser.download.dir Az abszolút út Firefox menti a letöltéseket ide.
browser.helperApps.neverAsk.saveToDisk A MIME-típusok mentése a letöltési párbeszédablak megjelenítése nélkül történt.
dom.webnotifications.enabled Állítsa hamis értékre a webes push értesítések letiltásához.
nemzetközi_elfogadott_nyelvek Az Accept-Language fejléc, amely hasznos a lokalizációs futtatásokhoz.
általános.felhasználó. felülírja Lecseréli a böngésző által küldött felhasználói ügynök karakterláncot.

Két korlátot érdemes ismerni. A beállításokat a meghajtó létrehozása előtt be kell állítani, mivel a WebDriver indításkor másolja a profilt, és a későbbi módosításokat figyelmen kívül hagyja. A WebDriver fenntart egy kis beállításkészletet is, amelyre szüksége van a böngészővel való kommunikációhoz, és ezeket felülírja, bármit is rendel hozzájuk. Mivel ezek az értékek a profilban találhatók, nem pedig a szkriptben, egy másik szerveren is tárolódnak. keresztböngésző tesztelése futtatható a tesztkód változtatása nélkül.

Közös Firefox Profilhibák a következőben: Selenium és Hogyan javítsuk ki őket

A profilproblémák általában fordítási hibaként vagy helytelen beállításokkal megnyíló böngészőként jelentkeznek. A táblázat a leggyakrabban jelentett hibákat sorolja fel, az egyes hibák okával együtt.

Tünet Okoz Rögzít
A kivitelező FirefoxIllesztőprogram(FirefoxProfil) nincs meghatározva A konstruktort eltávolították, miután Selenium 2. Tekerd be a profilt FirefoxOptions, és ehelyett add át az options objektumot.
Nem sikerült feloldani az org.openqa.selenium.firefox.internal.ProfilesIni importálását. Az osztály kiköltözött a belső alcsomagból. Importálja az org.openqa.selenium.firefox.ProfilesIni fájlt.
NullPointerException a getProfile-on A profil neve nem egyezik a profiles.ini fájlban található bejegyzésekkel. Nyisd meg újra a profilkezelőt, és másold ki a nevet pontosan, a kis- és nagybetűkkel együtt.
A te Firefox A profil nem tölthető be. Lehet, hogy hiányzik vagy nem érhető el. Másik Firefox A példány már tartalmazza a profilt, vagy a mappa elérési útja helytelen. Bezárás minden Firefox ablakban, majd ellenőrizze az elérési utat a fent felsorolt ​​helyekkel.
A preferenciának nincs hatása A meghajtóprogram elindítása után lett beállítva, vagy a WebDriver fenntartja azt. Minden setPreference hívás áthelyezése a fölé FirefoxIllesztőprogram-konstruktor.

Ha a böngésző megfelelően elindul, de a szkript továbbra is hibát jelez, valószínűleg nem a profil a probléma oka. kivételkezelés Selenium általában a leggyorsabb útvonal onnan.

GYIK

Nem. FirefoxA Driver soha nem szerkeszti a már létező profilokat. Átmásolja a profilkönyvtárat egy ideiglenes helyre, alkalmazza a WebDriver által megkövetelt beállításokat, és a másolatból indítja el a böngészőt, így a mentett könyvjelzők és jelszavak érintetlenek maradnak.

Igen. A profilba telepített összes bővítmény betöltődik a böngészővel. A profile.addExtension(new File(“path/to/extension.xpi”)) függvényt is meghívhatod, hogy futásidőben csatolj egyet, ami tisztán tartja a lemezen lévő profilt.

Python nincs ProfilesIni megfelelője. Point FirefoxProfile-t a profile könyvtárban, majd rendelje hozzá az options.profile fájlhoz az illesztőprogram felépítése előtt. Selenium Python kötések, majd klónozza a mappát pontosan úgy, ahogy Java igen.

A mesterséges intelligencia által támogatott teszteszközök összehasonlítják a sikeres futtatások során rögzített beállításokat az aktuális profillal, és jelzik az eltolódást, például egy megváltozott proxyt vagy letöltési mappát. Egyes keretrendszerek gépi tanulást is használnak a profillal kapcsolatos egyenetlenségek észlelésére, mielőtt az build sikertelen lenne.

GitHub másodpilóta gyorsan generálja a sablont, de gyakran kibocsátja az eltávolított FirefoxIllesztőprogram(FirefoxProfil) konstruktor, amelyet egy régebbi kódból tanultunk. Mindig erősítse meg a javaslatot, hogy az FirefoxOptions.setProfile és az aktuális csomag véglegesítése előtt.

Igen. Hívja meg az options.addArguments(“-headless”) függvényt az options.setProfile(profile) mellett. A profil pontosan ugyanúgy biztosítja a beállításokat és a kiterjesztéseket, mint korábban, mivel a headless mód csak azt változtatja meg, hogy hogyan... Firefox renderelés, nem pedig a profilkönyvtár beolvasásának módja.

Mivel a WebDriver egy ideiglenes másolaton dolgozik, és azt törli a munkamenet végén. A módosítások megőrzéséhez szerkessze manuálisan a profilt a profilkezelőben, vagy állítsa be a beállításokat a kódban, hogy minden futtatás ugyanabból az ismert állapotból induljon.

Nem mindig, de segít. A profil csatolása a következőhöz: FirefoxAz Options a beállításokat a képességekkel kapcsolatos hasznos adatokkal együtt szállítja, így egy távoli csomópont ugyanazt a letöltési mappát, proxyt és tanúsítványkezelést alkalmazza, mint a helyi gép.

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