Niyati
Niyati

Reputation: 513

How to create profile in Firefox using Selenium WebDriver

When we write something like this:

FirefoxProfile ffprofile = new FirefoxProfile(new File("D:\\Selenium"));

Does it mean we are creating a new Profile? Because I won't be able to find any new profile in the Firefox Profile section.

So now my question is, how do I create a new profile for a Firefox browser?

Upvotes: 8

Views: 53017

Answers (5)

Ankan
Ankan

Reputation: 9

Create profile in Firefox browser.

Here is the code for using newly created firefox profile.

ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("firefox profile name");
WebDriver driver = new FirefoxDriver(myprofile);

Upvotes: -2

Michal
Michal

Reputation: 3276

Following code will create firefox profile (based on provided file) and create a new FF webdriver instance with this profile loaded:

FirefoxProfile profile = new FirefoxProfile(new File("D:\\Selenium Profile"));
WebDriver driver = new FirefoxDriver(profile);

Maybe take a look on the official support page for FF profile manager or here: Custom Firefox profile for Selenium to get some idea on FF profiles.

Upvotes: 2

Loc Phan
Loc Phan

Reputation: 4564

Here is how I do by selenium 3 with geckodriver:

  • Use firefox command line interface to create profile

    firefox.exe -CreateProfile "profile_name profile_dir"
    

    (In java, execute this runtime by Runtime.getRuntime().exec function)

  • Set -profile argument in firefox options

    FirefoxOptions options = new FirefoxOptions();
    options.addArguments("-profile", <profile_dir>);
    driver = new FirefoxDriver(options);
    

Upvotes: 2

Dave Birch
Dave Birch

Reputation: 478

The method call you stated simply creates a java profile object from the given directory of profile information which is then passed to Firefox via the WebDriver instance.

In order to get Firefox to persist your driver and make it available from profile manager, you need to edit the file profiles.ini, on my (Windows 7) machine this was in:

%APPDATA%\Roaming\Mozilla\Firefox

The Profiles directory within this folder contains the stores of existing Firefox profiles, which are quite handy to copy when you want to use an existing profile as the template for a new one.

Your mileage may vary depending on your OS, but I'm sure you can find it with a quick search. Using your example, you'd then add the following to this file (where N in the header is the next unused profile number):

[ProfileN]
Name=selenium
IsRelative=0
Path=D:\Selenium

This will cause Firefox Profile Manager to load the profile and will allow you to then launch Firefox manually with this profile to configure or test it, which is what I presume you want to do.

Once you have created a named profile in this way, you can assign it to your driver in Selenium like this:

ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("selenium");
WebDriver driver = FirefoxDriver(profile);

Where "selenium" is the same as the Name property in the profiles.ini file.

Upvotes: 7

Manu
Manu

Reputation: 2301

You cannot create a profile for firefox using Selenium. What you can do is create a firefox profile for your webdriver from the available profiles in firefox. Firefox profile word sounds bit ambiguous here.

To create a firefox profile in browser, refer Mozilla support page for details.

Upvotes: 3

Related Questions