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

2024-05-16 06:44:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个非常复杂的设置来测试各种非公开网页。我使用jenkinsdocker映像中运行python-selenium测试。这样,我完全独立于詹金斯环境,可以创造自己的环境。在此环境中,我安装了以下软件:

  • Ubuntu 16.04.3版
  • 火狐:Mozilla火狐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

我的问题:

  • 这个信息是什么意思?
  • 这能说明为什么有时测试失败吗?
  • 如果是,怎么解决?

Tags: todockerlog消息网页mozilla软件环境
3条回答

What does this message mean?

DBus是用于进程间交换的消息总线系统。如果不是同一主题,则在类似主题上存在打开的geckodriver问题:

Could that be an indication of the reason why sometimes the tests are failing?

这个警告不应该真正影响测试,但是如果没有看到测试中实际发生的事情,就很难推测您的间歇性测试失败。

If so, how to fix it?

以下是一些尝试:

您看到的错误是:

(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守护进程和fails,因为dbus-launch异常终止。

DBU启动

dbus-launch基本上是通过外壳脚本启动消息总线的实用程序。它通常是从用户的登录脚本调用的。dbus launch启动会话总线实例,并将该实例的addresspid打印到标准输出。

您可以从^{}中阅读有关dbus-launch的更多信息

错误的根本原因

如果使用su(根)sudosueditgksu,则可能会出现此错误。主要原因是。

您将找到有关GConf-WARNING **: Client failed to connect to the D-BUS daemon:^{}的详细讨论。

另一个可能的原因可能是基本的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 launch程序的dbus-x11包。
  • 一个有效的解决方案是通过Revo Uninstallar卸载较旧版本的Firefox浏览器,并安装最新版本的Firefox浏览器。

最佳方法

Ubuntu和Mozila都很好地解决了dbus启动的问题。要克服此错误,您需要执行以下步骤:

  • 使用Latest Patch ReleasesUpdates更新您的<{}OS
  • 始终使用最新版本的^{} clientWebDriver variant^{})和Web BrowserFirefox Browser
  • Clean and Build在执行Test Suite之前和之后,通过IDE重新创建项目工作区。
  • Clear执行Tests之前和之后的浏览器缓存。
  • 如果您必须uninstall任何Web Client变体(Mozilla Firefox)使用Revo Uninstallar中等内存扫描以便丢弃过时的注册表设置。
  • 定期使用CCleaner工具清除操作系统的杂务,包括过时的^{}

对我来说,解决方案是安装dbus-x11

apt install dbus-x11

相关问题 更多 >