提问人:Tiago 提问时间:3/4/2018 最后编辑:undetected SeleniumTiago 更新时间:1/23/2019 访问量:19125
ChromeDriver 显示丢失的 UI 共享上下文
ChromeDriver showing Lost UI Shared Context
问:
我有一台运行 Windows 7 虚拟机的 Windows 10 笔记本电脑。在虚拟机内部,当我启动 WebDriver 时,它会给出错误 gpu_process_transport_factory.cc<1009> 启动时丢失 UI 共享上下文:
IWebDriver driver = new ChromeDriver() //This causes the 1009 Error
此外,对于“无法查询立体声录制”和“无法发送GpuChannelMsg_CreateCommandBuffer和 command_buffer_proxy_impll.cc<115>共享内存句柄无效。
这已经工作了几个月,没有进行任何更改(此 WebDriver 是虚拟机的唯一用途),运行它的笔记本电脑运行良好(即没有 GPU 问题)。WebDriver 仍然在页面中导航,但会产生更多错误,速度会慢 10 倍。
编辑:更新到ChromeDriver到2.35,但行为仍然相同。
答:
这似乎是最新版本的 Chrome (65.0.3325.146) 的问题。通过回滚到早期版本的Chrome(64.0.3282.186),问题对我来说消失了。
如果我找到更多信息,将进一步调查并在此处更新,但作为临时解决方法,您可以卸载 chrome 并安装版本 64.0.3282.186。
评论
Headless Chrome 由 Google Team 在 Chrome 59 中提供,它引入了一种在 Headless 环境中运行 Chrome 浏览器的方法。
添加了注释:
Headless mode has been available on Mac and Linux since Chrome 59. Windows support came in Chrome 60.
Headless Chrome
入门一文提到:
--disable-gpu \ # Temporarily needed if running on Windows.
添加了注释:
现在,如果您在 Windows 上运行,您还需要包含该标志。
--disable-gpu
根据讨论 Headless: make --disable-gpu flag unnecessary
很明显:
在 Linux 或 Mac OSX 上不再需要该标志。一旦
SwiftShader 在无头模式下的 Windows 上的断言失败
,它也将在 Windows 上变得没有必要。--disable-gpu
引擎盖下发生了什么?
根据讨论 Headless: Switch from osmesa to
SwiftShader As Google/Chromium 团队决定将 SwiftShader 与 Chrome 一起发布,该团队考虑开始使用它在无头模式下渲染 GL 内容。这需要进行以下几项更改:
- 在无头模式下跳过 GPU 数据收集,因为该代码不将 SwiftShader 视为软件实现,这会导致我们尝试从 Window System 检索信息时失败。
- 如果我们打算使用 osmesa,请仅在 InitializeStaticEGLInternal 中跳过 GL 初始化。SwiftShader 需要像其他非软件实现一样进行初始化。
- Mac OSX 目前不支持 SwiftShader,因此团队决定继续在该平台上以无头模式使用物理 GPU(与其他平台不同,其他平台的所有内容都是软件渲染的)。
- 因此,为了在无头模式下禁用 WebGL 支持,他们决定使用 --disable-gpu 和 --disable-software-rasterizer
在无头模式下支持 WebGL
的想法仍在讨论中,但 SwiftShader 在无头模式下在 Windows 上无法断言
,并出现错误:
[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 起,此问题已修复。不需要多余的参数。
评论