首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在高寒码头图像中使用Firefox-ESR的Selenium

问在高寒码头图像中使用Firefox-ESR的Selenium
EN

Stack Overflow用户
提问于 2019-08-10 11:08:38
回答 1查看 2.5K关注 0票数 3

我使用Selenium从Java代码进行测试,它是用maven自动启动的,当我运行mvn verify时,它使用gecko-driver为selenium启动新的firefox实例:

代码语言:javascript
复制
final FirefoxOptions opts = new FirefoxOptions();
if (HEADLESS_MODE) {
  opts.addArguments(ARG_HEADLESS);
}
return new FirefoxDriver(opts);

它在我的机器(以及其他开发人员的机器)上工作得很好,无论是“无头的”还是正常的。现在,我试图在容器中使用CI构建来运行Selenium测试。当我试图按原样运行它时,我遇到了一个错误:

运行命令:"/usr/bin/firefox“"-marionette”--无头"-foreground“--没有远程的"-profile”/tmp/生锈_mozprofile.pW1sbkcv98QN“错误: GDK_BACKEND不匹配可用的显示。

然后,我从dbus安装了所有建议的工具(xvfb和这个职位 ),并在运行测试之前启动了它:

代码语言:javascript
复制
apk add xvfb dbus
dbus-uuidgen > /etc/machine-id
export DISPLAY=:99
Xvfb $DISPLAY -ac &
mvn verify

但是现在硒测试已经持续了大约10秒,并且失败了。

1565433736375 mozrunner::Running运行命令:"/usr/bin/firefox“"-marionette”- "-foreground“-非远程"-profile”/tmp/生锈_mozprofile.1ZMsJ0Hy95V0“1565433738424 Marionette INFO侦听端口2828” !!!子错误:(msgtype=0x3E0003,name=PCompositable::Msg_Destroy)信道错误:无法发送/恢复 儿童2191 ###!中止:在通道错误时中止。:文件/home/buildozer/aports/community/firefox-esr/src/firefox-52.8.1esr/ipc/glue/MessageChannel.cpp,行2152儿童2191 ###!中止:在通道错误时中止。:文件/home/buildozer/aports/community/firefox-esr/src/firefox-52.8.1esr/ipc/glue/MessageChannel.cpp,行2152 !!!子错误:(msgtype=0x3E0003,name=PCompositable::Msg_Destroy)信道错误:无法发送/恢复

在这里,我似乎做错了什么,在容器中运行无头硒测试的正确方法是什么?我更愿意配置现有的Docker映像,而不是使用Selenium映像,因为迁移将非常昂贵。

更新:

Selenium版本是3.141.59

壁虎驱动程序版本是v0.24.0-linux64

火狐-ESR版本是:52.8.1-r0

Update2:

xvfb、dbus和导出的DISPLAY实际上并不需要在无头模式下运行火狐-只要运行firefox --headless就行了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-10 21:03:48

按照Mozilla --在Firefox52-esr.Headless标志中不受支持,在版本55 (用于Linux)和56 (Mac/Windows)中引入了无头标志。请试用最新的Firefox ESR版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57441584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档