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.
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.
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.
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ó.
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.
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.
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.
// 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.
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.







