“客户端无法连接到 D-BUS 守护进程”是什么意思?

新手上路,请多包涵

我正在使用非常复杂的设置来测试各种非公开网页。我使用 jenkinsdocker 图像中运行 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 许可协议

阅读 941
2 个回答

您看到的错误是:

 (firefox:55): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
/usr/bin/dbus-launch terminated abnormally without any error message

因此很明显, 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 相关的问题,如下所示:

  • 在启动 Firefox 之前,您必须输入 export $(dbus-launch)
  • 但是,这可能会导致另一个错误 NSS_USE_SHARED_DB 。所以你也必须使用 export NSS_USE_SHARED_DB=ENABLED
  • 最方便的方法是将所有配置放入 .bashrc 文件中:
   export $(dbus-launch)
  export NSS_USE_SHARED_DB=ENABLED
  firefox &

讨论 详细讨论了解决方案。

  • 如果 dbus-launch 没有安装在你的系统上,你必须安装 dbus-x11 包含 dbus-launch 程序的包。
  • 一个有效的解决方案是卸载旧的基本版本的 Firefox 浏览器并安装最新发布的 GA 版本的 Firefox 浏览器。

最佳方法

UbuntuMozila 都正确解决了 dbus-launch 的问题。要克服此错误,您需要按照以下步骤操作:

  • 使用 最新的补丁版本 和更新更新您的 Ubuntu 操作系统
  • 始终使用最新发布的 Selenium-Python 客户端 版本、 WebDriver 变体(例如 GeckoDriver) 和 Web 浏览器(例如 Firefox Browser )。
  • 在执行 测试套件 之前和之后,通过 IDE 重新 清理构建 _项目工作区_。
  • 在执行 测试 之前和之后 清除 _浏览器缓存_。
  • 如果您必须 卸载 任何 Web 客户端 变体(例如 Mozilla Firefox ),您可以使用 Revo Uninstallar 和 _中等内存扫描_,以便丢弃陈旧的 注册表设置
  • 定期使用 CCleaner 工具清除 操作系统的琐事,包括陈旧的 rust_mozprofile 目录

原文由 undetected Selenium 发布,翻译遵循 CC BY-SA 4.0 许可协议

这条消息是什么意思?

DBus 是一个用于进程间通信的消息总线系统。如果不是同一主题,则有一个开放的 geckodriver 问题:

这是否表明有时测试失败的原因?

该警告不应该真正影响测试,但很难在不了解测试中实际发生的情况的情况下推测您的间歇性测试失败。

如果是这样,如何解决?

这里有一些尝试:

原文由 alecxe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏