Selenium Firefox Profiil: häälestusjuhend
⚡ Nutikas kokkuvõte
Firefox profiil salvestab ühe brauserikasutaja järjehoidjad, paroolid, lisandmoodulid ja eelistused ning Selenium WebDriver saab laadida spetsiaalse profiili, nii et iga automatiseeritud käivitamine algab identsest ja prognoositavast brauseri olekust.

Selenium Firefox profiil
Firefox profiil on seadete, kohandamiste, lisandmoodulite ja muude isikupärastamise seadete kogum, mida saab teha Firefox BrowserSaate kohandada Firefox profiil, mis sobib teile Selenium automatiseerimise nõue.
Niisiis, Firefox või mis tahes muu brauser käsitleb SSL-sertifikaatide sätteid. Seega on nende automatiseerimine koos testi täitmiskoodiga väga mõttekas.
Lühidalt öeldes on profiil kasutaja isiklikud seaded. Kui soovite usaldusväärset automaatika kohta Firefox brauseri puhul on soovitatav luua eraldi profiil. Spetsiaalne profiil hoiab ka teie igapäevased sirvimisandmed testprotsessist eemal, mis on esimene asi, mida tuleks brauseri kasutamisel välistada. Selenium Skript käitub kahes masinas erinevalt.
Teie profiilikausta asukoht kettal
Firefox profiil on nagu erinevad kasutajad Firefox. Firefox salvestab isikuandmeid, näiteks järjehoidjaid, paroole ja kasutaja eelistusi, mida saab profiilihalduri abil muuta, kustutada või luua.
Allolev ekraanipilt näitab profiilikausta nii, nagu see kettal kuvatakse, nime saanud profiili järgi ja juhusliku eesliitega.
Profiili asukoht on järgmine
- eest Windows > C:\Kasutajad\ \AppData\Roaming\Mozilla\Firefox\Profiilid\profiili_nimi.vaikimisi
- eest Linux > ~/.mozilla/firefox/profiili_nimi.default/
- Mac OS X puhul > ~/Library/Rakenduste tugi/Firefox/Profiilid/profiili_nimi.default/
Selleks, et joosta edukas Selenium Test, a Firefox profiil peaks olema -
- Lihtne laadida
- Vajadusel puhverserveri seaded
- Muud kasutajaspetsiifilised sätted, mis põhinevad automatiseerimisvajadustel
Kuidas seada Firefox Profiil jaoks Selenium Testid
Vaatame samm-sammult, kuidas luua Firefox profiil.
Step 1) Sulgege Firefox brauseri
Esimeses etapis sulgege Firefox kui see on juba avatud. Profiilihaldur ei käivitu, kui a Firefox aken töötab.
Step 2) Ava Käivita (Windows klahv + R) ja tippige firefox.exe –p
Enne OK vajutamist peaks dialoogiaken Käivita välja nägema nagu alloleval ekraanipildil.
Märkus: Kui see ei avane, võite proovida kasutada jutumärkides täielikku teed.
- 32-bitisel Windows: „C:\Program Files\Mozilla” Firefox\firefox.exe” –p
- 64-bitisel Windows (32-bitine Firefox): „C:\Program Files (x86)\Mozilla Firefox\firefox.exe” –p
Step 3) Valige kasutajaprofiil
Nüüd dialoogiboks nimega Firefox avaneb, nagu allpool näidatud.
Step 4) Loo profiil
Viisardi käivitamiseks valige järgmisel ekraanipildil näidatud suvand Loo profiil.
Nüüd valige aknast suvand Loo profiil ja avaneb viisard. Klõpsake järgmisel.
Step 5) Andke oma profiilinimi
Tippige allpool esile tõstetud väljale automatiseerimisprofiili nimi ja lõpetage viisard.
Nüüd on teie profiil valmis, saate valida oma profiili ja avada FirefoxSiit edasi käitub profiil nagu iga teine brauseriseanss, seega a esimene WebDriveri skript esitatakse selle vastu muutmata kujul.
Märkad, et uus Firefox aken ei näita teie järjehoidjate ja lemmikute ikoone.
Märkus: Viimati valitud profiil laaditakse järgmisel korral automaatselt. Firefox käivitada. Kui soovite profiile muuta, peate profiilihalduri taaskäivitama.
Automatiseerimisskript jaoks Selenium
Kui profiil on loodud, on järgmine samm selle laadimine koodist. Uuele profiilile juurdepääsemiseks Firefox profiil a-s Selenium WebDriveri tarkvara testimiseks peame kasutama WebDriveri sisseehitatud klassi ProfilesIni ja selle meetodit getProfile, nagu allpool näidatud.
⚠️ Versiooni märkus: selle jaotise katkendid on originaalid Selenium 2. vorm. Praeguses Selenium klassi elukohad org.openqa.selenium.firefox.ProfilesIni - .sisemine alampakett eemaldati — ja profiil antakse juhile läbi FirefoxValikud. Vaadake FirefoxMoodsa vaste valikute jaotis allpool.
Selenium profiili kood
See on kood profiili rakendamiseks, mille saab manustada Selenium kood.
ProfilesIni profile = new ProfilesIni();
// see loob objekti jaoks Firefox profiil
FirefoxProfile myprofile = profile.getProfile("xyzProfile");
// see initsialiseerib faili Firefox juht
WebDriver driver = new FirefoxDriver(myprofile)
Vaatleme selle koodi rakendamist järgmistes näidetes.
Firefox Profiili näide 1
Esimeses näites laaditakse profiil nime järgi. Allolev ekraanipilt näitab sama skripti redaktoris.
// 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(); } }
Koodi selgitus
Allpool on koodide selgitus ridade kaupa.
- Code rida 2-7: Kõigepealt peame importima paketi, mis on vajalik programmi käivitamiseks. Selenium kood.
- Code rida 8: Loo avalik klass “FirefoxProfiil."
- Code rida 9: Loo objekt (sul peavad olema OOP-ide põhiteadmised).
- Code rida 10-11: Peame initsialiseerima Firefox profiil objektiga minuprofiil.
- Code rida 13: Loo objekt Firefox.
- Code rida 15: Akna maksimeerimine.
- Code rida 17: driver.get'i kasutatakse antud sihtkohta navigeerimiseks URL.
- Code rida 19: Ajalimiidi määramist kasutatakse selleks, et oodata teatud aega, mille jooksul brauser saab enne järgmisele lehele liikumist lehte laadida.
- Code rida 21: Sulge Firefox.
Vaatame veel ühte näidet.
Firefox Profiili näide 2
Teine näide jätab profiles.ini vahele ja osutab otse profiilikaustale, nagu redaktori ekraanipilt näitab.
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(); }
Koodi selgitus
Allpool on koodide selgitus ridade kaupa.
- Code rida 1-6: Kõigepealt peame importima paketi, mis on vajalik programmi käivitamiseks. Selenium kood.
- Code rida 8: Loo avalik klass FirefoxProfiil2.
- Code rida 12: Loo myprofile'i objekt, viidates täpsele teele.
- Code rida 14: Loo objekt Firefox.
- Code rida 16: Akna maksimeerimine.
- Code rida 18: driver.get'i kasutatakse antud sihtkohta navigeerimiseks URL.
- Code rida 20: Ajalimiidi määramist kasutatakse selleks, et oodata teatud aega, mille jooksul brauser saab enne järgmisele lehele liikumist lehte laadida.
- Code rida 22: Sulge Firefox.
Pane tähele, et selle koodilõigu tee on kirjutatud täpselt nii, nagu algses õpetuses seda näidatakse. Päris masinas tuleb kaldkriipsud paostada, näiteks „C:\\Users\\guru99\\AppData\\Roaming\\Mozilla\\Firefox\\Profiilid\\xyzProfile.vaikimisi”.
Kuidas kasutada a Firefox Profiil sisse Selenium 4 koos FirefoxValikud
Mõlemad ülaltoodud näited kompileeruvad ainult vastu Selenium 2. Hiljem muutus kaks asja ja iga praegune õpetus kasutab uuemat vormi.
- ProfilesIni kolis välja sisemine alampakett, seega on imporditav fail nüüd org.openqa.selenium.firefox.ProfilesIni.
- . FirefoxJuht(FirefoxProfiil) konstruktor eemaldati. Profiil on kinnitatud FirefoxValikud ja valikud edastatakse draiverile.
- Selenium 4 ajalõpu puhul kasutatakse väärtuse ja TimeUniti asemel java.time.Duration, seega implicitlyWait(5, TimeUnit.SECONDS) muutub implicitlyWait(Duration.ofSeconds(5)).
Allolev tabel seob iga pärandkõne selle asendusega.
| Pärandkõne (Selenium 2) | Praegune kõne (Selenium 3 ja 4) |
|---|---|
| import org.openqa.selenium.firefox.internal.ProfilesIni; | import org.openqa.selenium.firefox.ProfilesIni; |
| uus FirefoxJuht (minuprofiil) | valikud.setProfile(minuprofiil); uus FirefoxDraiver (valikud) |
| implicitlyWait(5, TimeUnit.SECONDS) | implicitlyWait(Duration.ofSeconds(5)) |
| System.setProperty geckodriveri jaoks | Lahendatud automaatselt Selenium Juht |
Praeguse versiooni põhjal ümber kirjutatud näide 1 näeb välja selline.
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(); } }
Profiiliotsing ise jääb samaks: ProfilesIni loeb endiselt profiles.ini faili Firefox application-data kaust ja getProfile tagastavad ikkagi nullväärtuse, kui nimi ei vasta profiilile, seega tasub enne draiveri käivitamist lisada nullväärtuskontroll. Sama options objekt sisaldab ka mujal kasutatavaid argumente, näiteks neid, mis on mõeldud brauseriakna maksimeerimine või suuruse muutmine.
Kuidas seada Firefox Profiili eelistused jaotises Selenium
Salvestatud profiil on vaid pool loost. Enamik automatiseeringuid vajab koodis rakendatud käputäit eelistusi, seega järgib sama käitumine komplekti mis tahes masinas. Meetod setPreference kirjutab need väärtused profiili koopiasse enne Firefox käivitab.
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);
Allolevad eelistused hõlmavad juhtumeid, mis igapäevases skriptimises kõige sagedamini ette tulevad.
| Eelistus | Mida see kontrollib |
|---|---|
| brauser.download.folderList | Süsteemi vaikekausta asemel kohandatud allalaadimiskausta kasutamiseks määrake väärtuseks 2. |
| brauser.download.dir | Absoluutne tee Firefox salvestab allalaadimised kausta. |
| browser.helperApps.neverAsk.saveToDisk | MIME tüübid salvestati allalaadimisdialoogi kuvamata. |
| dom.webnotifications.enabled | Veebipõhiste push-teavituste kuvamise keelamiseks määrake väärtuseks „väär“. |
| intl.accept_languages | Accept-Language päis, mis on kasulik lokaliseerimiskäivituste jaoks. |
| general.useragent.override | Asendab brauseri saadetud kasutajaagendi stringi. |
Tasub teada kahte piirangut. Eelistused tuleb määrata enne draiveri loomist, sest WebDriver kopeerib profiili käivitamisel ja hilisemad muudatused ignoreeritakse. WebDriver reserveerib ka väikese hulga eelistusi, mida see vajab brauseriga suhtlemiseks, ja kirjutab need üle olenemata sellest, milliseid te määrate. Kuna need väärtused asuvad profiilis, mitte skriptis, kanduvad need üle ka... brauseriteülene testimine käivitada ilma testkoodi muutmata.
ühine Firefox Profiilivead Selenium ja kuidas neid parandada
Profiiliprobleemid ilmnevad tavaliselt kompileerimisveana või brauseri avamisena valede sätetega. Tabelis on loetletud kõige sagedamini teatatud tõrked koos iga tõrke põhjustega.
| Sümptom | Põhjus | Määrama |
|---|---|---|
| Konstruktor FirefoxJuht(FirefoxProfiil) on määratlemata | Konstruktor eemaldati pärast Selenium 2. | Mähi profiil sisse FirefoxValikud ja edastage selle asemel valikute objekt. |
| Faili org.openqa.selenium.firefox.internal.ProfilesIni importi ei õnnestu lahendada. | Klass kolis sisemisest alampaketist välja. | Impordi org.openqa.selenium.firefox.ProfilesIni. |
| NullPointerException saidil getProfile | Profiilinimi ei vasta ühelegi kirjele failis profiles.ini. | Ava profiilihaldur uuesti ja kopeeri nimi täpselt, sh suur- ja väiketähed. |
| Sinu Firefox Profiili ei saa laadida. See võib puududa või olla ligipääsmatu. | Teine Firefox eksemplar juba omab profiili või on kausta tee vale. | Sulge iga Firefox aknas ja seejärel kontrollige teed ülaltoodud asukohtadega. |
| Eelistusel pole mingit mõju | See määrati pärast draiveri käivitamist või reserveeris selle WebDriver. | Liiguta iga setPreference'i kõne ülespoole FirefoxJuhi konstruktor. |
Kui brauser käivitub õigesti, aga skript ikkagi ebaõnnestub, ei ole probleemi põhjuseks tõenäoliselt profiil. erandite käsitlemine Selenium on sellest punktist tavaliselt kiireim marsruut.







