Tia*_*ago 9 c# selenium selenium-chromedriver selenium-webdriver chrome-web-driver
我有一台运行Windows 7虚拟机的Windows 10笔记本电脑.在虚拟机内部,当我启动WebDriver时,它在启动时给出错误gpu_process_transport_factory.cc <1009>丢失的UI共享上下文:
IWebDriver driver = new ChromeDriver() //This causes the 1009 Error
Run Code Online (Sandbox Code Playgroud)
然后因查询立体声录音失败 而无法发送GpuChannelMsg_CreateCommandBuffer 和 command_buffer_proxy_impll.cc <115>共享内存句柄无效.
这已经工作了几个月并且没有进行任何更改(此WebDriver是虚拟机的唯一目的),运行它的笔记本电脑运行正常(即没有GPU问题).WebDriver仍会浏览页面,但会产生更多错误并且速度会慢10倍.
编辑:更新到ChromeDriver到2.35仍然是相同的行为.
无头Chrome由谷歌团队在Chrome 59中发布,它引入了在无头环境中运行Chrome浏览器的方法.
添加了一条注释:
Headless mode has been available on Mac and Linux since Chrome 59. Windows support came in Chrome 60.
Run Code Online (Sandbox Code Playgroud)
文章Getting Started with Headless Chrome提到:
--disable-gpu \ # Temporarily needed if running on Windows.
Run Code Online (Sandbox Code Playgroud)
添加了一条注释:
现在,
--disable-gpu如果您在Windows上运行,您还需要包含该标志.
根据讨论Headless: make --disable-gpu flag unnecessary,很明显:
Linux或Mac OSX
--disable-gpu上不再需要该标志.一旦修复了bug,它也将在Windows上变得不必要.SwiftShader fails an assert on Windows in headless mode
根据headless: Switch from osmesa to SwiftShaderGoogle/Chromium团队决定通过Chrome发布SwiftShader的讨论,该团队考虑开始使用它来在无头模式下渲染GL内容.这需要进行以下几项更改:
这个想法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
Run Code Online (Sandbox Code Playgroud)
此错误不会影响您@Test,您可以暂时忽略该错误.
这似乎是最新版本 Chrome (65.0.3325.146) 的问题。通过回滚到早期版本的 Chrome (64.0.3282.186),这个问题对我来说消失了。
如果我找到更多信息,将进一步调查并在此处更新,但作为临时解决方法,您可以卸载 chrome 并安装版本 64.0.3282.186。