我有一台运行 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 并且仍然是相同的行为。
最佳答案
headless Chrome 由 Google 团队在 Chrome 59 中提供,它引入了一种在 headless 环境中运行 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.
添加了一个注释:
根据讨论
Headless: make --disable-gpu flag unnecessary
很明显:引擎盖下发生了什么?
根据讨论
headless: Switch from osmesa to SwiftShader
,因为 Google/Chromium 团队决定将 SwiftShader 与 使用 Headless 模式,以使用 Chrome 0x21421 的方式启动内容。这需要进行一些更改,如下所示:因为 SwiftShader 在 headless 模式
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
,您可以暂时忽略该错误。关于c# - ChromeDriver 显示丢失的 UI 共享上下文,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49094399/