我正在尝试使用firefox headless在headless redhat linux构建机器上运行selenium测试。我创建驱动程序的方法如下所示:
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
|Selenium版本:3.141.59
|GeckDrive版本:0.26.0
深入研究导致坠机的测试。就在崩溃发生之前,测试正在单击SwaggerUI的API try功能。网站上没有其他行动导致此次崩溃。
关于给定Geckodriver版本支持哪些Firefox浏览器版本的讨论,我没有看到您使用的二进制文件中有任何版本不匹配?。
唯一的嫌疑犯是FirefoxOptions类的setHeadless()
方法,根据文档如下:
setHeadless(boolean headless)
因此,有效地,您的代码块将:
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true)
另外的关键:
浏览器。下载文件夹列表
浏览器。下载目录
浏览器。下载经理开始时显示
浏览器。帮手们。内韦拉斯克。saveToDisk
需要通过使用FirefoxProfile()
的实例的setPre的()
方法进行配置,如下所示:
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");
你可以找到一个相关的详细讨论,关于如何使用FirefoxProfile通过Firefox浏览器自动下载?
找到了一个既有效又有效的解决方案。
在linux docker容器中运行firefox时,/dev/shm
必须至少有2gb。我的生成计算机配置不符合此要求。将内存量增加到2gb以上立即解决了我的问题。
这种行为的原因是Firefox使用POSIX共享内存,而Linux上的POSIX共享内存(根据shm_open(3)
手册)基于tmpfs(预计将安装在
/dev/shm
上)。打开的共享内存对象/接口可以与ipcs
或lsof
实用程序一起列出。
问题内容: 我有以下代码: 在模拟器中工作正常。但是当我在手机上尝试时,它崩溃了。这是控制台: 这行: NSNumberFormatter()。numberFromString(display.text!)! 返回nil,这导致应用程序崩溃,导致无法打开可选包装。我真的不知道怎么了 我正在关注iTunes U中的一些教程。 任何帮助,将不胜感激。 问题答案: 尝试: 因为默认情况下使用设备区域设置
第一个屏幕上传权和工作正常(Toast和所有其他设置和参数),直到我尝试保存结果并通过相同的按钮打开新屏幕。按下按钮会使我手机中的应用程序崩溃,而不会打开第二个屏幕。然而,在模拟器中,一切正常。 这是主要的活动: 这是相关的XML: 这是第二个活动: 这是第二个XML: 这是日志猫错误: 致命异常:主< br >进程:com . example . rach mani . mythematix _
我想在地图上画一条折线 进口com.google.android.gms.maps.model.Polyline;进口com.google.android.gms.maps.model.PolylineOptions; 导入java.util。ArrayList;导入java.util.List; 公共类 MainActivity extends AppCompatActivity 实现了 OnM
我的MapActive在低API手机上崩溃了。在我的LG G4上没有崩溃。为什么会这样? 这是我的代码: 日志中的错误显示: 致命异常:主进程:com.giladneiger.clubber,PID:22389java.lang.运行时异常:无法启动活动组件信息{com.giladneiger.clubber/com.giladneiger.clubber.MapsActivity}:java.l
我们正在调查另一个团队开发的一个应用程序,该应用程序在Android上与HereMaps(此处为SDK导航版,)相关的本机崩溃,其stacktrace如下: 编辑: 在代码中进行了一些重构和清理操作之后,我们已经达到了一个干净的状态,在这个状态下,我们确信没有任何泄漏;我们已经用LeakCanary调查并移除了所有这些,但本地崩溃仍然存在。 因此,我们试图回到basis,从github克隆了HER
问题内容: 当使用Lucene为文档建立索引时,我的JVM(1.6.0_29)在频繁使用时始终崩溃。我得到: 环境: JDK:1.6u29(与1.6_02相同的问题)Lucene版本3.4.0 vm_info:适用于linux-amd64 JRE(1.6.0_29-b11)的Java HotSpot(TM)64位服务器VM(20.4-b02),由“ java_re”于gcc 3.2.2于2011年