我正在尝试使用无头firefox在无头redhat linux构建机器上运行硒测试。我创建驱动程序的方法如下:
private static WebDriver createFireFoxDriver() {
WebDriverManager.firefoxdriver()
.setup();
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
options.addPreference("browser.download.folderList", 2);
options.addPreference("browser.download.dir", ABSOLUTE_PATH_TO_FOLDER);
options.addPreference("browser.download.manager.showWhenStarting", false);
options.addPreference("browser.helperApps.neverAsk.saveToDisk", "application/json");
return new FirefoxDriver(options);
}
我在日志文件中看到的错误看起来像:
[Parent 65433, Gecko_IOThread] WARNING: pipe error (82): Connection reset by peer: file /builds/worker/workspace/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 358
[Parent 65433, Gecko_IOThread] WARNING: pipe error: Broken pipe: file /builds/worker/workspace/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 727
###!!! [Parent][MessageChannel] Error: (msgtype=0x1E0074,name=PBrowser::Msg_StopIMEStateManagement) Channel error: cannot send/recv
###!!! [Parent][MessageChannel] Error: (msgtype=0x1E008F,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv
1579539977190 Marionette TRACE [11] Frame script loaded
1579539977191 Marionette TRACE [11] Frame script registered
A content process crashed and MOZ_CRASHREPORTER_SHUTDOWN is set, shutting down
我已经检查了计算机上是否还安装了正确版本的gtk,glib,pango,xorg和libstdc ++。有人使用无头构建机遇到过此问题吗?
Firefox版本:68.4.1
|硒版本:3.141.59
| Geckdriver版本:0.26.0
关于Which Firefox browser versions supported for given Geckodriver version?中的讨论,您在使用的二进制文件中没有看到任何版本错误。
唯一的怀疑者是setHeadless()
类的setHeadless()
方法,根据文档,其方法如下:
FirefoxOptions
非常有效,您的代码块将是:
setHeadless(boolean headless)
另外<< [键:
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true)
browser.download.folderList
browser.download.dir
browser.download.manager.showWhenStarting
browser.helperApps.neverAsk.saveToDisk
的实例通过setPreference()
方法进行配置,如下所示:
FirefoxProfile()
您可以在FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("browser.download.folderList", 2); profile.setPreference("browser.download.dir", ABSOLUTE_PATH_TO_FOLDER); profile.setPreference("browser.download.manager.showWhenStarting", false); profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/json");
中找到相关的详细讨论