【问题标题】:ChromeDriver showing Lost UI Shared ContextChromeDriver 显示丢失的 UI 共享上下文
【发布时间】:2019-01-18 07:08:20
【问题描述】:

我有一台运行 Windows 7 虚拟机的 Windows 10 笔记本电脑。在虚拟机内部,当我启动 WebDriver 时,它会在启动时给出错误 gpu_process_transport_factory.cc Lost UI shared context

IWebDriver driver = new ChromeDriver() //This causes the 1009 Error

查询立体声录音失败发送 GpuChannelMsg_CreateCommandBuffer 失败command_buffer_proxy_impll.cc共享内存也会有所不同句柄无效

这已经工作了几个月并且没有进行任何更改(此 WebDriver 是虚拟机的唯一用途),运行它的笔记本电脑运行良好(即. 没有 GPU 问题)。 WebDriver 仍然在页面中导航,但会出现更多错误并且速度会慢 10 倍。

编辑:将 ChromeDriver 更新到 2.35,但行为仍然相同。

【问题讨论】:

  • 您的机器使用的是哪个版本的 Chrome?我最近刚开始遇到这个问题,发现出现错误的机器是 65 版,而正常工作的机器是 64 版。
  • 这会影响执行鼠标相关控制的能力吗?即 - mouseButtonDown、moveTo 等?

标签: c# selenium selenium-webdriver selenium-chromedriver chrome-web-driver


【解决方案1】:

“丢失的 UI 共享上下文”被误认为是一个错误,而它实际上是一个日志输出。

自 Chrome 72.0 起已修复此问题。不需要多余的参数。

【讨论】:

    【解决方案2】:

    Headless ChromeGoogle 团队Chrome 59 中提供,引入了一种运行 Chrome 浏览器的方法在无头环境中。

    一个注释被添加为:

    Headless mode has been available on Mac and Linux since Chrome 59. Windows support came in Chrome 60.
    

    文章Getting Started with Headless Chrome提到:

    --disable-gpu \                # Temporarily needed if running on Windows.
    

    一个注释被添加为:

    现在,如果您在 Windows 上运行,您还需要包含 --disable-gpu 标志。

    根据Headless: make --disable-gpu flag unnecessary 的讨论,很明显:

    --disable-gpu 标志在 LinuxMac OSX 上不再需要。一旦 bug SwiftShader fails an assert on Windows in headless mode 得到修复,它在 Windows 上也将变得不必要。

    幕后发生了什么?

    根据headless: Switch from osmesa to SwiftShader 的讨论,由于 Google/Chromium 团队决定将 SwiftShaderChrome 一起发布,该团队考虑开始使用它来渲染 GL 内容 处于 无头模式。这需要进行如下更改:

    • Headless Mode 中跳过 GPU 数据收集,因为 SwiftShader 不被该代码视为软件实现,当我们尝试从 strong>窗口系统。
    • 如果我们打算使用 osmesa,则仅在 InitializeStaticEGLInternal 中跳过 GL 初始化SwiftShader 需要像其他非软件实现一样进行初始化。
    • Mac OSX 目前不支持 SwiftShader,因此团队决定在Headless Mode 中继续使用物理 GPU > 在该平台上(与其他所有内容都是软件渲染的平台不同)。
    • 因此,为了在 Headless Mode 中禁用 WebGL 支持,他们决定使用 --disable-gpu--disable-软件光栅化器

    Support WebGL in headless 的想法仍在讨论中,但SwiftShader fails an assert on Windows in headless mode 出现错误:

    [0117/125830.649194:ERROR:gpu_process_transport_factory.cc(1043)] Lost UI shared context.
    DevTools listening on ws://127.0.0.1:37429/devtools/browser/1f0b2bf7-dfdd-44ac-9da7-f2659d352f0d
    

    结论

    此错误不会影响您的@Test,您可以暂时忽略该错误。

    【讨论】:

      【解决方案3】:

      这似乎是最新版 Chrome (65.0.3325.146) 的问题。通过回滚到较早版本的 Chrome (64.0.3282.186),我的问题就消失了。

      如果我找到更多信息,我会进一步调查并在此处更新,但作为临时解决方法,您可以卸载 chrome 并安装版本 64.0.3282.186。

      【讨论】:

      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 2013-10-09
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多