C# ChromeDriver显示丢失的UI共享上下文

C# ChromeDriver显示丢失的UI共享上下文,c#,selenium,selenium-webdriver,selenium-chromedriver,chrome-web-driver,C#,Selenium,Selenium Webdriver,Selenium Chromedriver,Chrome Web Driver,我有一台运行Windows7虚拟机的Windows10笔记本电脑。在虚拟机内部,当我启动WebDriver时,它会在启动时给出错误gpu_process_transport_factory.cc丢失UI共享上下文: IWebDriver driver = new ChromeDriver() //This causes the 1009 Error 此外,由于未能查询立体声录制和未能发送GpuChannelMsg_CreateCommandBuffer和命令_buffer_proxy_imp

我有一台运行Windows7虚拟机的Windows10笔记本电脑。在虚拟机内部,当我启动WebDriver时,它会在启动时给出错误gpu_process_transport_factory.cc丢失UI共享上下文:

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

此外,由于未能查询立体声录制和未能发送GpuChannelMsg_CreateCommandBuffer命令_buffer_proxy_impll.cc共享内存句柄无效,也会发生变化

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


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

这似乎是Chrome最新版本(65.0.3325.146)的一个问题。通过返回到Chrome的早期版本(64.0.3282.186),这个问题对我来说消失了

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

无头chrome由Google团队在chrome 59中发布,该团队引入了一种在无头环境中运行chrome浏览器的方法

增加一项说明如下:

Headless mode has been available on Mac and Linux since Chrome 59. Windows support came in Chrome 60.
文章提到:

--disable-gpu \                # Temporarily needed if running on Windows.
增加一项说明如下:

Headless mode has been available on Mac and Linux since Chrome 59. Windows support came in Chrome 60.
现在,如果您在Windows上运行,您还需要包括
--disable gpu
标志

根据讨论,很明显:

在Linux或Mac OSX上不再需要禁用gpu标志。一旦bug修复,它在Windows上也将变得不必要

引擎盖下发生了什么? 根据讨论,Google/Chrome团队决定将SwiftShaderChrome一起发布,团队认为开始使用它以无头模式呈现GL内容。这需要进行如下几项更改:

  • 跳过无头模式下的GPU数据采集,因为当我们试图从窗口系统检索信息时,SwiftShader不被该代码视为软件实现,从而导致失败
  • 如果我们打算使用osmesa,则仅跳过InitializeStaticEGLInternal中的GL初始化SwiftShader与其他非软件实现一样需要初始化
  • SwiftShader目前在Mac OSX上不受支持,因此团队决定继续在该平台上以无头模式使用物理GPU(与其他平台不同,在其他平台上,一切都是软件渲染的)
  • 因此,为了在无头模式下禁用WebGL支持,他们决定使用--禁用gpu--禁用软件光栅化器
到的想法仍在讨论中,但有一个错误:

[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
,您可以暂时忽略此错误。

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


自Chrome 72.0以来,此问题已得到修复。不需要额外的参数。

您的机器使用的是什么版本的Chrome?我最近刚开始出现这个问题,并注意到出现错误的机器在版本65上,而工作的机器在版本64上。这会影响执行鼠标相关控件的能力吗?ie-mouseButtonDown、moveTo等?@rebecca sparks只需卸载Chrome并安装旧版本。您可以在此处下载较旧版本的chrome: