无法解析构造函数FirefoxDriver(org.openqa.selenium.firefox.FirefoxProfile)

时间:2018-04-06 00:09:18

标签: java selenium selenium-webdriver webdriver

有人可以帮我解决这段代码。目前它将在第4行投诉 :webDriver = new FirefoxDriver(ff_ep_profiles) 说它无法解析构造函数。我需要加载我的扩展,因此我正在创建一个配置文件

FirefoxProfile ff_ep_profile = new FirefoxProfile(new File("C:\\Users\\admin\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\81uy033g.FirefoxEP"));
    FirefoxOptions option=new FirefoxOptions();
    option.setProfile(ff_ep_profile);
    webDriver = new FirefoxDriver(ff_ep_profile);

1 个答案:

答案 0 :(得分:2)

使用 Selenium v​​3.11.x GeckoDriver v0.20.0 Firefox Quantum v59.0.2 时,可以使用不同的选项进行调用新的/现有的 Firefox个人资料

如果您希望在每次运行测试执行时使用 Firefox配置文件,则可以使用以下代码块:< / p>

System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe");
FirefoxOptions options = new FirefoxOptions();
options.setProfile(new FirefoxProfile());
WebDriver driver = new FirefoxDriver(options);
driver.get("https://www.google.com");

如果您希望在每次运行测试执行时使用现有 Firefox配置文件,首先必须创建 Firefox配置文件,请按照Creating a new Firefox profile on Windows上的说明进行操作。

现在您有两种方法可以调用您创建的 Firefox配置文件,如下所示:

  • 您可以使用 FirefoxOptions 类来调用现有的 Firefox配置文件,您可以使用以下代码块:

    System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe");
    ProfilesIni profile = new ProfilesIni();
    FirefoxProfile testprofile = profile.getProfile("debanjan");
    FirefoxOptions opt = new FirefoxOptions();
    opt.setProfile(testprofile);
    WebDriver driver =  new FirefoxDriver(opt);
    driver.get("https://www.google.com");
    
  • 您还可以使用 DesiredCapabilities 类设置现有的 Firefox个人资料,然后在 FirefoxOptions 的实例中合并可以使用以下代码块:

    System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe");
    ProfilesIni profile = new ProfilesIni();
    FirefoxProfile testprofile = profile.getProfile("debanjan");
    DesiredCapabilities dc = DesiredCapabilities.firefox();
    dc.setCapability(FirefoxDriver.PROFILE, testprofile);
    FirefoxOptions opt = new FirefoxOptions();
    opt.merge(dc);
    WebDriver driver =  new FirefoxDriver(opt);
    driver.get("https://www.google.com");