首页 > 解决方案 > 无法在 java 中使用 geckodriver 启动 FireFox 自定义配置文件

问题描述

我正在尝试使用 selenium v​​3.12 和 gecko-driver v2.10 以及 Firefox 版本 60.0 启动一个带有附加组件的 Firefox 配置文件,但是似乎自定义配置文件不起作用。下面是我的代码

static WebDriver driver;
ProfilesIni profile = new ProfilesIni();
        myprofile = profile.getProfile("AutoProfile");
System.setProperty("webdriver.gecko.driver", 
  "E:\\Library\\geckodriver-v0.21.0-win32\\geckodriver.exe");
        driver = new FirefoxDriver(myprofile);

实际错误在线

driver = new FirefoxDriver(myprofile);

作为

构造函数 FirefoxDriver(FirefoxProfile) 未定义

标签: javafirefoxgeckodriver

解决方案


您必须通过 Firefox 选项传递它。

System.setProperty("webdriver.gecko.driver", "E:\\Library\\geckodriver-v0.21.0-win32\\geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("AutoProfile");
FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setProfile(myprofile);
WebDriver driver = new FirefoxDriver(firefoxOptions);

如果以下解决方案导致 java 堆错误,您可以尝试 DesiredCapabilities,如下所示:

System.setProperty("webdriver.gecko.driver","E:\\Library\\geckodriver-v0.21.0-win32\\geckodriver.exe");
File file = new File(path_to_your_firefox_profile);
DesiredCapabilities dc = DesiredCapabilities.firefox();
FirefoxProfile profile = new FirefoxProfile(file);
dc.setCapability(FirefoxDriver.PROFILE, profile);
FirefoxDriver driver = new FirefoxDriver(dc);

推荐阅读