Selenium Firefox Profiili: Asennusopas
⚡ Älykäs yhteenveto
Firefox profiili tallentaa yhdelle selaimen käyttäjälle kuuluvat kirjanmerkit, salasanat, lisäosat ja asetukset, ja Selenium WebDriver voi ladata erillisen profiilin, joten jokainen automaattinen suoritus alkaa identtisestä, ennustettavasta selaintilasta.

Selenium Firefox Profiili
Firefox profiili on kokoelma asetuksia, mukautuksia, lisäosia ja muita mukautusasetuksia, jotka voidaan tehdä Firefox Browser. Voit mukauttaa Firefox profiilisi sopivaksi Selenium automaatiovaatimus.
Myös, Firefox tai mikä tahansa muu selain käsittelee SSL-varmenneasetuksia. Joten niiden automatisoinnissa on paljon järkeä yhdessä testin suorituskoodin kanssa.
Lyhyesti sanottuna profiili on käyttäjän henkilökohtaiset asetukset. Kun haluat käyttää luotettavaa automaatio on Firefox selaimen kanssa on suositeltavaa luoda erillinen profiili. Oma profiili pitää myös päivittäiset selaustietosi poissa testikäytöstä, mikä on ensimmäinen asia, joka kannattaa sulkea pois, kun Selenium Skripti toimii eri tavalla kahdella koneella.
Profiilikansiosi sijainti levyllä
Firefox profiili on aivan kuten eri käyttäjät käyttävät Firefox. Firefox tallentaa henkilökohtaisia tietoja, kuten kirjanmerkkejä, salasanoja ja käyttäjäasetuksia, joita voidaan muokata, poistaa tai luoda profiilinhallinnan avulla.
Alla olevassa kuvakaappauksessa näkyy profiilikansio sellaisena kuin se näkyy levyllä. Kansio on nimetty profiilin mukaan ja sillä on satunnainen etuliite.
Profiilin sijainti on seuraava
- varten Windows > C:\Käyttäjät\ \AppData\Roaming\Mozilla\Firefox\Profiilit\profiilin_nimi.oletus
- varten Linux > ~/.mozilla/firefox/profiilin_nimi.default/
- Mac OS X:ssä > ~/Kirjasto/Sovellustuki/Firefox/Profiilit/profiilin_nimi.default/
Jotta ajaa menestystä Selenium Testi, a Firefox profiilin tulee olla -
- Helppo ladata
- Välityspalvelimen asetukset tarvittaessa
- Muut käyttäjäkohtaiset asetukset automaatiotarpeiden mukaan
Kuinka asettaa Firefox Profiilia käyttäjälle Selenium Testit
Katsotaanpa askel askeleelta, miten luodaan Firefox profiili.
Vaihe 1) Sulje Firefox selain
Ensimmäisessä vaiheessa sulje Firefox jos se on jo auki. Profiilinhallinta ei käynnisty, kun Firefox ikkuna on käynnissä.
Vaihe 2) Avaa Suorita (Windows näppäin + R) ja kirjoita firefox.exe –p
Suorita-valintaikkunan pitäisi näyttää alla olevan kuvakaappauksen kaltaiselta ennen kuin painat OK-painiketta.
Huomautus: Jos se ei avaudu, voit kokeilla lainausmerkeissä olevaa koko polkua.
- 32-bittisessä järjestelmässä Windows: “C:\Ohjelmatiedostot\Mozilla” Firefox\firefox.exe” –p
- 64-bittisessä järjestelmässä Windows (32-bittinen Firefox): “C:\Program Files (x86)\Mozilla Firefox\firefox.exe” –p
Vaihe 3) Valitse käyttäjäprofiili
Nyt valintaikkuna nimeltä Firefox avautuu, kuten alla näkyy.
Vaihe 4) Luo profiili
Käynnistä ohjattu toiminto valitsemalla seuraavassa kuvakaappauksessa näkyvä Luo profiili -vaihtoehto.
Valitse nyt ikkunasta vaihtoehto Luo profiili ja ohjattu toiminto avautuu. Napsauta seuraavaa.
Vaihe 5) Anna profiilisi nimi
Kirjoita automaatioprofiilin nimi alla korostettuun kenttään ja lopeta ohjattu toiminto.
Nyt profiilisi on valmis, voit valita profiilisi ja avata FirefoxTästä eteenpäin profiili toimii kuten mikä tahansa muu selainistunto, joten ensimmäinen WebDriver-skripti ajaa sitä vastaan muuttumattomana.
Huomaat, että uusi Firefox ikkuna ei näytä mitään kirjanmerkkejäsi ja suosikkikuvakkeitasi.
Huomautus: Viimeksi valittu profiili latautuu automaattisesti seuraavalla kerralla. Firefox tuoda markkinoille. Sinun on käynnistettävä profiilinhallinta uudelleen, jos haluat vaihtaa profiileja.
Automation Script for Selenium
Kun profiili on luotu, seuraava vaihe on ladata se koodista. Päästäksesi käsiksi juuri luotuun profiiliin Firefox profiilissa Selenium WebDriver-ohjelmiston testauksessa meidän on käytettävä WebDriverin sisäänrakennettua ProfilesIni-luokkaa ja sen getProfile-metodia alla olevan mukaisesti.
⚠️ Versiohuomautus: tämän osion katkelmat ovat alkuperäisiä Selenium 2. lomake. Nykyisessä muodossa Selenium julkaisuissa, joissa luokka asuu org.openqa.selenium.firefox.ProfilesIni - .sisäinen alipaketti pudotettiin — ja profiili luovutetaan kuljettajalle kautta FirefoxVaihtoehdot. Katso FirefoxNykyaikaisen vastineen vaihtoehdot-osio alla.
Selenium profiilin koodi
Tämä on koodi profiilin toteuttamiseksi, joka voidaan upottaa Selenium koodi.
ProfilesIni profile = new ProfilesIni();
// tämä luo objektin Firefox profiili
FirefoxProfile myprofile = profile.getProfile("xyzProfile");
// tämä alustaa Firefox kuljettaja
WebDriver driver = new FirefoxDriver(myprofile)
Katsotaanpa tämän koodin toteutusta seuraavissa esimerkeissä.
Firefox Profiiliesimerkki 1
Ensimmäinen esimerkki lataa profiilin nimen perusteella. Alla oleva kuvakaappaus näyttää saman komentosarjan editorin sisällä.
// 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(); } }
Selitys koodille
Alla on koodin selitys rivi riviltä.
- Code rivi 2-7: Ensin meidän on tuotava paketti, jota tarvitaan funktion suorittamiseen Selenium koodi.
- Code rivi 8: Luo julkinen luokka “FirefoxProfiili."
- Code rivi 9: Tee olio (sinulla on oltava perustiedot OOP-käsitteistä).
- Code rivi 10-11: Meidän täytyy alustaa Firefox profiili, jonka objekti on myprofile.
- Code rivi 13: Luo objekti kohteelle Firefox.
- Code rivi 15: Suurenna ikkuna.
- Code rivi 17: driver.get-tiedostoa käytetään navigointiin annettuun kohteeseen URL.
- Code rivi 19: Aikakatkaisun asetusta käytetään odottamaan jonkin aikaa, jotta selain voi ladata sivun ennen seuraavalle sivulle siirtymistä.
- Code rivi 21: Sulje Firefox.
Katsotaanpa vielä yksi esimerkki.
Firefox Profiiliesimerkki 2
Toinen esimerkki ohittaa profiles.ini-tiedoston ja osoittaa suoraan profiilikansioon, kuten editorin kuvakaappaus osoittaa.
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(); }
Selitys koodille
Alla on koodin selitys rivi riviltä.
- Code rivi 1-6: Ensin meidän on tuotava paketti, jota tarvitaan funktion suorittamiseen Selenium koodi.
- Code rivi 8: Luo julkinen luokka FirefoxProfiili2.
- Code rivi 12: Tee myprofile-objektista viittaamalla tarkkaan polkuun.
- Code rivi 14: Luo objekti kohteelle Firefox.
- Code rivi 16: Suurenna ikkuna.
- Code rivi 18: driver.get-tiedostoa käytetään navigointiin annettuun kohteeseen URL.
- Code rivi 20: Aikakatkaisun asetusta käytetään odottamaan jonkin aikaa, jotta selain voi ladata sivun ennen seuraavalle sivulle siirtymistä.
- Code rivi 22: Sulje Firefox.
Huomaa, että tämän koodinpätkän polku on kirjoitettu täsmälleen samalla tavalla kuin alkuperäisessä tutoriaalissa se näytetään. Oikealla koneella kenoviivat on vaihdettava koodinvaihtomerkillä, esimerkiksi “C:\\Users\\guru99\\AppData\\Roaming\\Mozilla\\Firefox\\Profiilit\\xyzProfile.default”.
Kuinka käyttää Firefox Profiili sisään Selenium 4 kanssa FirefoxVaihtoehdot
Molemmat yllä olevat esimerkit kääntyvät vain vastaan Selenium 2. Kaksi asiaa muuttui jälkikäteen, ja jokainen nykyinen opetusohjelma käyttää uudempaa muotoa.
- ProfilesIni muutti pois sisäinen alipaketti, joten tuonti on nyt org.openqa.selenium.firefox.ProfilesIni.
- FirefoxKuljettaja(FirefoxProfiili) -rakentaja poistettiin. Profiili on liitetty FirefoxOptions-objekti ja options-objekti välitetään ajurille.
- Selenium Neljä aikakatkaisua käyttävät java.time.Duration-muuttujaa arvon ja TimeUnit-muuttujan sijaan, joten implicitlyWait(5, TimeUnit.SECONDS) muuttuu implicitlyWait(Duration.ofSeconds(5)) -muuttujaksi.
Alla oleva taulukko yhdistää jokaisen vanhan kutsun sen korvaavaan kutsuun.
| Perinteinen puhelu (Selenium 2) | Nykyinen puhelu (Selenium 3 ja 4) |
|---|---|
| import org.openqa.selenium.firefox.internal.ProfilesIni; | import org.openqa.selenium.firefox.ProfilesIni; |
| uusi FirefoxKuljettaja(profiilini) | asetukset.setProfile(omaprofiili); new FirefoxOhjain (lisävarusteet) |
| implicitlyWait(5, AikaYksikkö.SEKUNNIT) | implisiittisestiOdota(Kesto.sekunteja(5)) |
| System.setProperty geckodriverille | Ratkaistu automaattisesti Selenium Johtaja |
Uudelleenkirjoitettuna nykyistä julkaisua vasten, esimerkki 1 näyttää tältä.
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(); } }
Profiilihaku itsessään ei muutu: ProfilesIni lukee edelleen profiles.ini-tiedoston Firefox application-data-kansio ja getProfile palauttavat edelleen null-arvon, kun nimi ei vastaa profiilia, joten null-tarkistus kannattaa lisätä ennen ajurin käynnistymistä. Sama options-objekti sisältää myös muualla käytetyt argumentit, kuten esimerkiksi selainikkunan maksimointi tai koon muuttaminen.
Kuinka asettaa Firefox Profiiliasetukset kohdassa Selenium
Tallennettu profiili on vasta puolet tarinasta. Useimmat automaatiot tarvitsevat muutamia koodiin lisättyjä asetuksia, jotta sama toiminta jatkuu millä tahansa koneella. setPreference-metodi kirjoittaa nämä arvot profiilikopioon ennen Firefox käynnistää.
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);
Alla olevat asetukset kattavat tapaukset, joita esiintyy useimmin päivittäisessä skriptauksessa.
| Etusija | Mitä se hallitsee |
|---|---|
| browser.download.folderList | Aseta arvoksi 2 käyttääksesi mukautettua latauskansiota järjestelmän oletuskansion sijaan. |
| selain.lataus.hakemisto | Absoluuttinen polku Firefox tallentaa lataukset kansioon. |
| browser.helperApps.neverAsk.saveToDisk | MIME-tyypit tallennettiin näyttämättä latausikkunaa. |
| dom.webnotifications.enabled | Aseta arvoksi epätosi, jos haluat estää verkkoilmoitusten näyttämisen. |
| kansainväliset_hyväksytyt_kielet | Accept-Language-otsikko, hyödyllinen lokalisointiajoissa. |
| yleinen.käyttäjä.ohittaa | Korvaa selaimen lähettämän käyttäjäagenttimerkkijonon. |
Kaksi rajoitusta on hyvä tietää. Asetukset on määritettävä ennen ajurin luomista, koska WebDriver kopioi profiilin käynnistyksen yhteydessä ja myöhemmät muutokset ohitetaan. WebDriver varaa myös pienen joukon asetuksia, joita se tarvitsee kommunikoidakseen selaimen kanssa, ja se korvaa ne millä tahansa määrittämälläsi asetuksella. Koska nämä arvot sijaitsevat profiilissa eivätkä komentosarjassa, ne siirtyvät myös... selainten välinen testaus ajaa ilman muutoksia testikoodiin.
Yhteinen Firefox Profiilivirheet kohdassa Selenium ja kuinka korjata ne
Profiiliongelmat ilmenevät yleensä käännösvirheenä tai selaimen avautuessa väärillä asetuksilla. Taulukossa luetellaan useimmin raportoidut virheet ja niiden syyt.
| Oire | Aiheuttaa | Korjata |
|---|---|---|
| Rakentaja FirefoxKuljettaja(FirefoxProfiili) on määrittelemätön | Rakentaja poistettiin sen jälkeen, kun Selenium 2. | Kiedo profiili sisään FirefoxOptions ja välitä sen sijaan options-objekti. |
| Tiedoston org.openqa.selenium.firefox.internal.ProfilesIni tuontia ei voitu ratkaista. | Luokka siirrettiin pois sisäisestä alipaketista. | Tuo org.openqa.selenium.firefox.ProfilesIni. |
| NullPointerException getProfilessa | Profiilin nimi ei vastaa mitään merkintää profiles.ini-tiedostossa. | Avaa profiilinhallinta uudelleen ja kopioi nimi tarkasti, kirjainkoko mukaan lukien. |
| Sinun Firefox Profiilia ei voida ladata. Se saattaa puuttua tai olla käyttämättä. | Toinen Firefox instanssilla on jo profiili tai kansion polku on väärä. | Sulje joka Firefox ikkuna ja tarkista sitten polku yllä lueteltuja sijainteja vasten. |
| Mieltymyksellä ei ole vaikutusta | Se asetettiin ajurin käynnistyksen jälkeen tai WebDriver varaa sen. | Siirrä jokainen setPreference-kutsu yläpuolelle FirefoxKuljettajan rakentaja. |
Jos selain käynnistyy oikein, mutta komentosarja epäonnistuu silti sen jälkeen, profiili ei todennäköisesti ole syy. poikkeusten käsittely Selenium on yleensä nopein reitti tuosta pisteestä.







