javaseleniumfirefoxgeckodriverfirefox-profile

How can I set a default profile for the Firefox driver in Selenium Webdriver 3?


I can't set a default profile for Firefox in Selenium Webdriver 3 because there is no such constructor in the FirefoxDriver class.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class SeleniumStartTest {
    @Test
    public void seleniumFirefox() {
        System.setProperty("webdriver.gecko.driver", "C:\\Users\\FirefoxDriver\\geckodriver.exe");
        ProfilesIni profileIni = new ProfilesIni();
        FirefoxProfile profile = profileIni.getProfile("default");
        WebDriver driver = new FirefoxDriver(profile);
        driver.get("http://www.google.com");
    }
}

Compile error in Java code: Java Code

Maven pom.xml dependencies: Selenium 3.14.0

Firefox version: Firefox version 62.0.2


Solution

  • As you are using Selenium 3.14.0 as per the FirefoxDriver Class the valid constructors are:

    So, as per your code attempts the following is not a valid option to invoke FirefoxDriver()

    WebDriver driver = new FirefoxDriver(profile);
    

    Solution

    To invoke invoke FirefoxDriver() with the default profile you need to use the setProfile(profile) method to set the FirefoxProfile through an instance of FirefoxOptions() and you can use the following code block: