2

创建 Firefox 驱动程序时出现连接被拒绝错误。

System.setProperty("webdriver.gecko.driver", "path to gecko driver");
FirefoxOptions options = new FirefoxOptions();
options.setLogLevel(FirefoxDriverLogLevel.FATAL);
options.setAcceptInsecureCerts(true);
options.addArguments("-profile", "./firefoxprofile");
options.setHeadless(true);
LOGGER.info("Completed setting firefox optons");
WebDriver driver = new FirefoxDriver(options);

日志:

 1550014357421  mozrunner::runner   INFO    Running command: "/Applications/Firefox.app/Contents/MacOS/firefox-bin" "-marionette" "-profile" "./firefoxprofile" "-foreground" "-no-remote"
 1550014357464  geckodriver::marionette DEBUG   Waiting 60s to connect to browser on 127.0.0.1:61008
 [GFX1-]: [OPENGL] Failed to init compositor with reason: FEATURE_FAILURE_OPENGL_CREATE_CONTEXT
 Can't find symbol 'GetGraphicsResetStatus'.
 1550014417545  mozrunner::runner   DEBUG   Killing process 38393
 Exiting due to channel error.
 1550014417592  webdriver::server   DEBUG   <- 500 Internal Server Error {"value":{"error":"unknown error","message":"connection refused","stacktrace":""}}

Web 服务器正在运行,我可以使用 curl 命令对其进行测试,我尝试使用 gecko 驱动程序 bin 文件的 777 权限。

还将 Gecko 驱动程序更新到最新版本 (0.24.0)

4

3 回答 3

2

你的配置看起来不错。

我在 Linux 中遇到了类似的问题。

  • 在我的情况下,解决方案是使用所有版本的壁虎驱动程序进行测试,并且使用其中一个版本,它可以工作。

  • 您还可以检查您的 IDE(eclipse、intellij)的 os 用户是否与 firefox 的用户相同。在我的例子中,eclipse 是从 root 开始的,但是 firefox 不能以 root 用户开始。

我希望这对你有帮助。

于 2019-02-13T02:27:01.233 回答
1

在使用Selenium v​​3.xGeckoDriver v0.24.0Firefox Quantum v65.0以在每次运行测试执行时使用新的 Firefox 配置文件时,您可以使用以下代码块:

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

您可以在无法解析构造函数 FirefoxDriver(org.openqa.selenium.firefox.FirefoxProfile)中找到详细讨论

于 2019-02-13T06:48:36.620 回答
0

我在使用python的 Windows 中遇到了同样的问题。确保您的 Firefox 浏览器版本也是最新版本。

经过一番搜索,我终于发现是因为之前的浏览器实例正在运行。请记住,不是像我打开的另一个实例,而是以前由 selenium 打开的实例。如果可以,请关闭所有后台浏览器进程。我重新启动了我的系统,只要我记得这样做,它就可以正常工作browser.quit()

如果在正确关闭对象之前停止程序,则后台实例可能会继续运行,除非 eclipse 或您使用的任何 IDE 将其关闭。

于 2019-06-12T13:52:02.607 回答