我正在使用非常复杂的设置来测试各种非公开网页。我使用 jenkins
在 docker
图像中运行 python-selenium
测试。这样我就完全独立于jenkins环境,可以自己创建环境了。在这个环境中,我安装了以下软件:
- Ubuntu 16.04.3
- 火狐浏览器:Mozilla Firefox 57.0.1
- 壁虎驱动程序:0.18.0
- 鼻子测试:1.3.7
- 硒:3.8.0
运行测试时,大部分成功,我在 geckodriver.log
中看到输出消息,如
(firefox:55): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
/usr/bin/dbus-launch terminated abnormally without any error message
我的问题:
- 这条消息是什么意思?
- 这是否表明有时测试失败的原因?
- 如果是这样,如何解决?
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
您看到的错误是:
因此很明显, Firefox 尝试连接到 D-BUS 守护进程,但由于 dbus-launch 异常终止而失败。
dbus-启动
dbus-launch 基本上是 firefox 通过 shell 脚本启动消息总线的实用程序。它通常会从用户的登录脚本中调用。 dbus-launch 启动会话总线实例并将该实例的地址和
pid
打印到标准输出。您可以从 Linux 手册页 中阅读有关 dbus-launch 的更多信息
根本原因
This error can arise if you use
su
(root),sudo
,suedit
,gksu
.主要原因是DBUS_SESSION_BUS_ADDRESS
在您su
--- 中保留其值,而不是获取/root/.dbus/session-bus
中的值。在这里您会找到关于 GConf Error: No D-BUS daemon running?! 的详细讨论。 如何重新安装或修复? .
另一个可能的原因可能是基础
Firefox
浏览器版本可能是旧版本,已对其进行更新以达到当前版本。解决方案 :
有几个解决方案可用于解决这个与 ubuntu 相关的问题,如下所示:
export $(dbus-launch)
NSS_USE_SHARED_DB
。所以你也必须使用export NSS_USE_SHARED_DB=ENABLED
。.bashrc
文件中:此 讨论 详细讨论了解决方案。
dbus-launch
没有安装在你的系统上,你必须安装dbus-x11
包含 dbus-launch 程序的包。最佳方法
Ubuntu 和 Mozila 都正确解决了 dbus-launch 的问题。要克服此错误,您需要按照以下步骤操作: