【问题标题】:Mozilla Firefox 68.2.0esr browser is crashing using GeckoDriver and SeleniumMozilla Firefox 68.2.0esr 浏览器使用 GeckoDriver 和 Selenium 崩溃
【发布时间】:2020-06-04 17:25:37
【问题描述】:

我试图通过 selenium 启动 Firefox 浏览器,但不幸的是浏览器在启动后立即关闭。我无法从日志文件中解释。

这里是日志文件条目:

1582121786461   mozrunner::runner       INFO    Running command: "/usr/bin/firefox" "-marionette" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofile.d4XupquDfaWC"
1582121787117   addons.webextension.screenshots@mozilla.org     WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: mozillaAddons
1582121787117   addons.webextension.screenshots@mozilla.org     WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: telemetry
1582121787118   addons.webextension.screenshots@mozilla.org     WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: resource://pdf.js/
1582121787118   addons.webextension.screenshots@mozilla.org     WARN    Loading extension 'screenshots@mozilla.org': Reading manifest: Invalid extension permission: about:reader*
JavaScript error: resource:///modules/sessionstore/SessionStore.jsm, line 1325: uncaught exception: 2147746065
1582121789421   Marionette      INFO    Listening on port 33105
1582121789488   Marionette      WARN    TLS certificate errors will be ignored for this session
19:46:29.537 INFO [ProtocolHandshake.createSession] - Detected dialect: W3C
19:46:29.559 INFO [RemoteSession$Factory.lambda$performHandshake$0] - Started new session 1420379c-5cc3-444a-8309-0492333a3c5f (org.openqa.selenium.firefox.GeckoDriverService)
1582121794637   Marionette      WARN    TimedPromise timed out after 5000 ms: stacktrace:
bail@chrome://marionette/content/sync.js:237:64
Fatal: no entropy gathering module detected
Redirecting call to abort() to mozalloc_abort


###!!! [Parent][MessageChannel] Error: (msgtype=0x1E008F,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv

A content process crashed and MOZ_CRASHREPORTER_SHUTDOWN is set, shutting down
JavaScript error: resource:///modules/sessionstore/SessionFile.jsm, line 376: Error: _initWorker called too early! Please read the session file from disk first.
[Parent 423702, Gecko_IOThread] WARNING: pipe error (82): Connection reset by peer: file /home/abuild/rpmbuild/BUILD/firefox-68.2.0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 358
1582121795636   Marionette      INFO    Stopped listening on port 33105

以下是浏览器/库的版本:

  • 火狐版本:68.2.0esr
  • Geckodriver 版本:0.24
  • 硒版本:3.141.59

我尝试过使用不同版本的 Gecko 驱动程序和 Selenium,但没有任何效果。请让我知道任何解决方案。

【问题讨论】:

    标签: selenium selenium-webdriver firefox geckodriver selenium-firefoxdriver


    【解决方案1】:

    此错误消息...

    Fatal: no entropy gathering module detected 
    Redirecting call to abort() to mozalloc_abort
    .
    A content process crashed and MOZ_CRASHREPORTER_SHUTDOWN is set, shutting down 
    JavaScript error: resource:///modules/sessionstore/SessionFile.jsm, line 376: 
    Error: _initWorker called too early! Please read the session file from disk first. 
    [Parent 423702, Gecko_IOThread] WARNING: pipe error (82): Connection reset by peer: file /home/abuild/rpmbuild/BUILD/firefox-68.2.0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
    

    ...暗示 内容进程 在创建会话时崩溃,并且存在 内核恐慌


    深潜

    有关您的代码试验和 Trace 级别日志的更多信息将有助于我们以更好的方式分析问题。但是,早先在4.9.x kernels 中发现了此问题。有时,在损坏的urandom / random 中也观察到此问题

    但是,您的主要问题似乎是您使用的二进制文件版本之间的不兼容,如下所示:

    • 您使用的是 2019 年 1 月 29 日GeckoDriver v0.24.0,比它早一年。
    • 您正在使用 Firefox v68.2.0esr
    • 我们不知道您的 JDK 版本

    根据Supported platforms 中的文档,Firefoxen 部分提到的二进制文件之间似乎存在一些不匹配:

    在 Firefox 57 及更高版本中获得最佳支持,尽管通常 Firefox 版本越新,体验就越好,因为它们有更多的错误修复和功能。某些功能仅在最新的 Firefox 版本中可用,我们强烈建议使用最新的 Firefox Nightly 和 geckodriver。由于 Firefox 53 中删除了 Firefox 中的 Windows XP 支持,因此我们不支持此平台。

    Note:从 0.26.0 版本开始,geckodriver 能够连接到 Android 设备,并控制基于 GeckoView 的软件包(例如 Firefox Preview aka Fenix 或 Firefox Reality)。但它仍然支持高达 68 ESR 的 Fennec 版本,这是 Mozilla 官方支持的最后一个版本


    解决方案

    确保:

    • JDK 升级到当前级别JDK 8u341
    • Selenium 升级到当前级别 Version 3.141.59
    • GeckoDriver 升级到GeckoDriver v0.26.0 级别。
    • Firefox 升级到当前的 Firefox v72.0 级别。
    • GeckoDriver 位于所需位置。
    • GeckoDriver 对非 root 用户具有可执行权限。
    • 如果您的基础 Web Client 版本太旧,请通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web Client
    • 进行系统重启
    • 以非 root 用户身份执行 Test
    • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例。

    结尾

    根据使用 GeckoDriverSeleniumFirefox 浏览器 时的最佳实践,请遵循以下兼容性图表:

    Supported platforms

    【讨论】:

    • 感谢 Debanjan 的回复。我为此使用 Java 8。
    猜你喜欢
    • 2019-03-13
    • 2021-12-26
    • 2016-10-11
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    相关资源
    最近更新 更多