Selenium Firefox Profil: Installationsguide
โก Smart sammanfattning
Firefox profilen lagrar bokmรคrken, lรถsenord, tillรคgg och instรคllningar som tillhรถr en webblรคsaranvรคndare, och Selenium WebDriver kan ladda en dedikerad profil sรฅ att varje automatiserad kรถrning startar frรฅn ett identiskt, fรถrutsรคgbart webblรคsartillstรฅnd.
Selenium Firefox Profil
Firefox profil รคr samlingen av instรคllningar, anpassningar, tillรคgg och andra personaliseringsinstรคllningar som kan gรถras pรฅ Firefox Browser. Du kan anpassa Firefox profil som passar din Selenium automatiseringskrav.
Ocksรฅ, Firefox eller nรฅgon annan webblรคsare hanterar SSL-certifikatinstรคllningarna. Sรฅ att automatisera dem รคr mycket vettigt tillsammans med testexekveringskoden.
Kort sagt รคr en profil en anvรคndares personliga instรคllningar. Nรคr du vill kรถra en pรฅlitlig automatisering pรฅ en Firefox webblรคsare rekommenderas det att skapa en separat profil. En dedikerad profil hรฅller ocksรฅ dina dagliga webblรคsardata borta frรฅn testkรถrningen, vilket รคr det fรถrsta man bรถr utesluta nรคr en Selenium Skriptet beter sig olika pรฅ tvรฅ maskiner.
Plats fรถr din profilmapp pรฅ disken
Firefox profilen รคr precis som olika anvรคndare anvรคnder Firefox. Firefox sparar personlig information som bokmรคrken, lรถsenord och anvรคndarinstรคllningar som kan redigeras, raderas eller skapas med hjรคlp av profilhanteraren.
Skรคrmdumpen nedan visar en profilmapp som den visas pรฅ disken, namngiven efter profilen med ett slumpmรคssigt prefix.
Placeringen av profilen รคr som fรถljer
- Fรถr Windows > C:\Anvรคndare\ \AppData\Roaming\Mozilla\Firefox\Profiler\profilnamn.standard
- Fรถr Linux > ~/.mozilla/firefox/profilnamn.standard/
- Fรถr Mac OS X > ~/Bibliotek/Programsupport/Firefox/Profiles/profile_name.default/
Fรถr att kunna kรถra en framgรฅngsrik Selenium Testa, a Firefox profilen ska vara -
- Lรคtt att ladda
- Proxyinstรคllningar vid behov
- Andra anvรคndarspecifika instรคllningar baserade pรฅ automatiseringsbehov
Hur man stรคller in Firefox Profil fรถr Selenium Tester
Lรฅt oss se steg fรถr steg hur man skapar en Firefox profil.
Steg 1) Stรคng Firefox webblรคsare
I fรถrsta steget, stรคng Firefox om den redan รคr รถppen. Profilhanteraren startar inte medan en Firefox fรถnstret kรถrs.
Steg 2) รppna Kรถr (Windows tangent + R) och skriv firefox.exe โp
Dialogrutan Kรถr bรถr se ut som skรคrmdumpen nedan innan du trycker pรฅ OK.
Obs: Om den inte รถppnas kan du prova att anvรคnda den fullstรคndiga sรถkvรคgen inom citationstecken.
- Pรฅ 32 bitar Windows: โC:\Programfiler\Mozilla Firefox"\firefox.exe" โp
- Pรฅ 64 bitar Windows (32-bitars Firefox): โC:\Programfiler (x86)\Mozilla Firefox"\firefox.exe" โp
Steg 3) Vรคlj anvรคndarprofil
Nu en dialogruta med namnet Firefox kommer att รถppnas, som visas nedan.
Steg 4) Skapa profil
Vรคlj alternativet Skapa profil som visas i nรคsta skรคrmbild fรถr att starta guiden.
Vรคlj nu alternativet Skapa profil i fรถnstret, sรฅ รถppnas en guide. Klicka pรฅ nรคsta.
Steg 5) Ge ditt profilnamn
Skriv ett namn fรถr automatiseringsprofilen i det markerade fรคltet nedan och avsluta guiden.
Nu รคr din profil klar, du kan vรคlja din profil och รถppna FirefoxHรคrifrรฅn beter sig profilen som vilken annan webblรคsarsession som helst, sรฅ en fรถrsta WebDriver-skriptet kommer att kรคmpa emot det ofรถrรคndrat.
Du kommer att mรคrka att den nya Firefox fรถnstret visar inte nรฅgra av dina bokmรคrken och favoritikoner.
Obs: Den senast valda profilen laddas automatiskt vid nรคsta Firefox lansera. Du mรฅste starta om profilhanteraren om du vill รคndra profiler.
Automation Script fรถr Selenium
Nรคr profilen รคr skapad รคr nรคsta steg att ladda den frรฅn kod. Fรถr att komma รฅt den nyskapade profilen Firefox profil i en Selenium Fรถr att testa WebDriver-programvaran behรถver vi anvรคnda WebDrivers inbyggda klass ProfilesIni och dess metod getProfile som visas nedan.
โ ๏ธ Versionsinformation: utdragen i det hรคr avsnittet รคr originalet Selenium 2-formulรคr. I nuvarande Selenium slรคpper ut klassens liv i org.openqa.selenium.firefox.ProfilesIni - Den .inre delpaketet slรคpptes โ och profilen รถverlรคmnas till fรถraren via FirefoxAlternativ. Se FirefoxAlternativavsnittet nedan fรถr den moderna motsvarigheten.
Selenium kod fรถr profilen
Detta รคr en kod fรถr att implementera en profil, som kan bรคddas in i Selenium koda.
ProfilesIni profile = new ProfilesIni();
// detta kommer att skapa ett objekt fรถr Firefox profil
FirefoxProfile myprofile = profile.getProfile("xyzProfile");
// detta kommer att initiera Firefox chauffรถr
WebDriver driver = new FirefoxDriver(myprofile)
Lรฅt oss se implementeringen av denna kod i fรถljande exempel.
Firefox Profilexempel 1
Det fรถrsta exemplet laddar en profil efter namn. Skรคrmdumpen nedan visar samma skript i redigeraren.
// 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(); } }
Fรถrklaring till koden
Nedan fรถljer fรถrklaringen av kod rad fรถr rad.
- Code rad 2-7: Fรถrst och frรคmst mรฅste vi importera paketet som krรคvs fรถr att kรถra Selenium koda.
- Code rad 8: Skapa en offentlig klass โFirefoxProfil."
- Code rad 9: Skapa ett objekt (du behรถver ha grundlรคggande kunskaper om OOP-koncept).
- Code rad 10-11: Vi behรถver initiera Firefox profil med objektet fรถr minprofil.
- Code rad 13: Skapa objekt fรถr Firefox.
- Code rad 15: Maximera fรถnstret.
- Code rad 17: driver.get anvรคnds fรถr att navigera till det givna URL.
- Code rad 19: Ange timeout anvรคnds fรถr att vรคnta en viss tid sรฅ att webblรคsaren kan ladda sidan innan den fortsรคtter till nรคsta sida.
- Code rad 21: Stรคng Firefox.
Lรฅt oss se ytterligare ett exempel.
Firefox Profilexempel 2
Det andra exemplet hoppar รถver profiles.ini och pekar direkt pรฅ profilmappen, som redigerarens skรคrmdump visar.
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(); }
Fรถrklaring till koden
Nedan fรถljer fรถrklaringen av kod rad fรถr rad.
- Code rad 1-6: Fรถrst och frรคmst mรฅste vi importera paketet som krรคvs fรถr att kรถra Selenium koda.
- Code rad 8: Skapa en offentlig klass FirefoxProfil2.
- Code rad 12: Skapa objektet myprofile genom att referera till den exakta sรถkvรคgen.
- Code rad 14: Skapa objekt fรถr Firefox.
- Code rad 16: Maximera fรถnstret.
- Code rad 18: driver.get anvรคnds fรถr att navigera till det givna URL.
- Code rad 20: Ange timeout anvรคnds fรถr att vรคnta en viss tid sรฅ att webblรคsaren kan ladda sidan innan den fortsรคtter till nรคsta sida.
- Code rad 22: Stรคng Firefox.
Observera att sรถkvรคgen i det hรคr kodavsnittet รคr skriven exakt som den ursprungliga handledningen visar. Pรฅ en riktig maskin mรฅste bakรฅtsnedstreck vara escape-tecken, till exempel โC:\\Users\\guru99\\AppData\\Roaming\\Mozilla\\Firefox\\Profiler\\xyzProfile.standardโ.
Hur man anvรคnder a Firefox Profil i Selenium 4 med FirefoxMontering
Bรฅda exemplen ovan kompilerar endast mot Selenium 2. Tvรฅ saker รคndrades efterรฅt, och varje aktuell handledning anvรคnder den nyare formen.
- ProfilesIni flyttade ut ur inre underpaket, sรฅ importen รคr nu org.openqa.selenium.firefox.ProfilesIni.
- Ocuco-landskapet FirefoxFรถrare(FirefoxProfil)konstruktorn togs bort. Profilen รคr kopplad till en FirefoxOptions-objektet och options-objektet skickas till drivrutinen.
- Selenium 4 timeouts tar ett java.time.Duration-vรคrde istรคllet fรถr ett vรคrde plus en TimeUnit, sรฅ implicitlyWait(5, TimeUnit.SECONDS) blir implicitlyWait(Duration.ofSeconds(5)).
Tabellen nedan mappar varje รคldre anrop till dess ersรคttning.
| รldre samtal (Selenium 2) | Nuvarande samtal (Selenium 3 och 4) |
|---|---|
| importera org.openqa.selenium.firefox.internal.ProfilesIni; | importera org.openqa.selenium.firefox.ProfilesIni; |
| ny FirefoxFรถrare (min profil) | options.setProfile(minprofil); new FirefoxFรถrare (tillval) |
| implicitlyWait(5, TimeUnit.SECONDS) | implicitlyWait(Duration.ofSeconds(5)) |
| System.setProperty fรถr geckodriver | Lรถst automatiskt av Selenium chef |
Omskrivet mot en aktuell utgรฅva, ser exempel 1 ut sรฅ hรคr.
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(); } }
Sjรคlva profilsรถkningen รคr ofรถrรคndrad: ProfilesIni lรคser fortfarande profiles.ini frรฅn Firefox application-data folder och getProfile returnerar fortfarande null nรคr namnet inte matchar en profil, sรฅ en null-kontroll รคr vรคrd att lรคgga till innan drivrutinen startar. Samma options-objekt bรคr ocksรฅ argumenten som anvรคnds pรฅ andra stรคllen, till exempel de fรถr maximera eller รคndra storlek pรฅ webblรคsarfรถnstret.
Hur man stรคller in Firefox Profilinstรคllningar i Selenium
En sparad profil รคr bara halva historien. De flesta automatiseringar krรคver en handfull instรคllningar som tillรคmpas i kod sรฅ att samma beteende fรถljer sviten pรฅ vilken maskin som helst. Metoden setPreference skriver dessa vรคrden till profilkopian innan Firefox lanserar.
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);
Instรคllningarna nedan tรคcker de fall som fรถrekommer oftast i det dagliga skriptarbetet.
| Fรถretrรคde | Vad den kontrollerar |
|---|---|
| webblรคsare.nedladdning.mapplista | Stรคll in pรฅ 2 fรถr att anvรคnda en anpassad nedladdningsmapp istรคllet fรถr systemets standardmapp. |
| webblรคsare.nedladdning.dir | Den absoluta vรคgen Firefox sparar nedladdningar i. |
| browser.helperApps.neverAsk.saveToDisk | MIME-typer sparades utan att nedladdningsdialogrutan visades. |
| dom.webnotifications.aktiverade | Stรคll in pรฅ falskt fรถr att undertrycka push-aviseringar pรฅ webben. |
| intl.accept_languages | Accept-Language-headern, anvรคndbar fรถr lokaliseringskรถrningar. |
| generell.useragent.override | Ersรคtter anvรคndaragentstrรคngen som skickas av webblรคsaren. |
Tvรฅ begrรคnsningar รคr vรคrda att kรคnna till. Instรคllningar mรฅste stรคllas in innan drivrutinen skapas, eftersom WebDriver kopierar profilen vid start och senare รคndringar ignoreras. WebDriver reserverar ocksรฅ en liten uppsรคttning instรคllningar som behรถvs fรถr att kommunicera med webblรคsaren, och den skriver รถver dessa oavsett vad du tilldelar. Eftersom dessa vรคrden finns i profilen snarare รคn i skriptet, รถverfรถrs de ocksรฅ รถver en korsa webblรคsartestning kรถras utan att รคndra testkoden.
Gemensam Firefox Profilfel i Selenium och hur man fixar dem
Profilproblem uppstรฅr vanligtvis som ett kompileringsfel eller som en webblรคsare som รถppnas med fel instรคllningar. Tabellen listar de fel som rapporteras oftast, tillsammans med orsaken till varje fel.
| Symptom | Orsak | Fast |
|---|---|---|
| Konstruktรถren FirefoxFรถrare(FirefoxProfil) รคr odefinierad | Konstruktรถren togs bort efter Selenium 2. | Linda in profilen FirefoxOptions och skicka options-objektet istรคllet. |
| Kan inte lรถsa import org.openqa.selenium.firefox.internal.ProfilesIni | Klassen flyttade ut ur det interna delpaketet. | Importera org.openqa.selenium.firefox.ProfilesIni. |
| NullPointerException pรฅ getProfile | Profilnamnet matchar ingen post i profiles.ini. | รppna profilhanteraren igen och kopiera namnet exakt, inklusive versaler och gemener. |
| Dina Firefox Profilen kan inte laddas. Den kan saknas eller vara oรฅtkomlig. | Annan Firefox instansen innehรฅller redan profilen, eller sรฅ รคr mappens sรถkvรคg fel. | Stรคng varje Firefox fรถnstret och verifiera sedan sรถkvรคgen mot platserna som anges ovan. |
| En preferens har ingen effekt | Den stรคlldes in efter att drivrutinen startade, eller sรฅ reserverar WebDriver den. | Flytta varje setPreference-anrop ovanfรถr FirefoxDrivrutinskonstruktรถr. |
Om webblรคsaren startar korrekt men skriptet fortfarande misslyckas efterรฅt, รคr profilen fรถrmodligen inte orsaken. undantagshantering i Selenium รคr vanligtvis den snabbaste vรคgen frรฅn den punkten.







