透传不被支持,GL已禁用。

53

我尝试使用selenium和webdriver_manager.chrome爬取特定网站,我的代码完全爬取了该网站的元素。但在爬取后,控制台窗口中出现以下错误消息。

ERROR:gpu_init.cc(426) Passthrough is not supported, GL is disabled

当我第一次发现它时,我取消了Chrome的硬件加速,但这并没有解决问题。


1
这对你来说是一个致命问题吗? - cruisepandey
@cruisepandey 是的。当那条消息出现时,我就不能使用控制台了。 - Moincoar
7
我使用Selenium和Chromedriver已经几年了。这个问题是从几个月前开始出现的。看起来Chromedriver v.89中的headless选项是问题的原因[1, 2]。 - J. Choi
2
@Hoinobert,你是如何操作WebDriver的ChromeOptions的呢? - user11945129
6个回答

37

测试环境

Windows操作系统,Chromedriver版本89,无头模式。

解决方案

我不确定这是否可以是你问题的解决方案,因为错误消息略有不同。

据我记得,错误消息Passthrough is not supported, GL is swiftshader在Chromedriver版本89之后作为一个bug(但不确定)出现 [1]。

对于Windows来说,使用--headless--disable-gpu选项可以使chromedriver以无头模式工作[2]。由于该bug,Linux也需要使用--disable-gpu [3]。

  1. 如果同时删除--headless--disable-gpu选项,则错误消息将不会出现。然而,chromedriver将不再以无头模式工作。

  2. 在我的情况下,错误消息不会影响无头chrome的操作。正如我所发现的,“通常,Chrome会退回到没有GPU的工作状态。然而,为了获得一致的结果,Telemetry需要GPU的存在 [4]。”

  3. 我还额外应用了--disable-software-rasterizer选项以禁用WebGL [5]。在无头操作下,错误消息不再显示。

参考文献

[1] https://reddit.com/r/chrome/comments/n6qywt/hardware_acceleration_fail_in_chrome_on_linux/
[2] https://developers.google.com/web/updates/2017/04/headless-chrome
[3] https://bugs.chromium.org/p/chromium/issues/detail?id=737678
[4] https://groups.google.com/a/chromium.org/g/telemetry/c/bEgV1EH63eA
[5] https://bugs.chromium.org/p/chromium/issues/detail?id=617551

这些链接与IT技术有关。您可以在这些网页中了解以下信息:
[1]如何在Linux上修复Chrome的硬件加速失败问题。
[2]使用无头浏览器Headless Chrome进行自动化测试和屏幕截图。
[3]关于启用GPU进程的错误反馈,这可能会影响Chrome的性能和稳定性。
[4]测量Chrome性能和稳定性的遥测指标(Telemetry metrics)如何工作。
[5]Chrome在低端GPU上的渲染问题反馈。

--disable-software-rasterizer 对我有帮助,感谢详细的回答。 - Mache
如何强制加速?因为3D画布的渲染速度很慢。 - Dee

20

我在使用selenium和chromedriver时遇到了同样的问题。对我来说,解决方案是在Chrome浏览器中激活WebGL。我按照以下步骤进行操作:

  1. chrome://settings -> 在底部点击高级设置 -> 选中启用硬件加速

enter image description here

  1. chrome://flags -> 在搜索栏中搜索WebGL -> 启用/激活WebGL enter image description here

这里有更好的说明:https://superuser.com/questions/836832/how-can-i-enable-webgl-in-my-browser


的确,禁用硬件加速就解决了这个问题,但这只是因为Chrome被更新了,我认为它重置了这个选项,因为它在一天工作,下一天不工作。 - AlexD
谢谢,我已经设置了硬件加速,但启用WebGL解决了我的问题,我也遇到了无法显示开发者工具的问题,但现在似乎已经解决了。我正在进行电子开发,所以不确定如何像接受的答案中建议的那样传递参数。 - Griffin

2

在我使用Xvfb运行chromium的设置中,出现了这个警告。我通过在命令行中添加以下标志来解决此警告:

--disable-features=DefaultPassthroughCommandDecoder

1

我在启动 Eclipse 时遇到了这个错误,并通过以下两步骤进行修复:

  1. 现在使用更高版本的 Java VM 来运行 Eclipse,例如从 Java8 升级到 Java11。
  2. 同时从 JRE 切换到 JDK。

添加 Eclipse 启动参数:

-vm C:\PROGRA~1\ECLIPS~1\jdk-11.0.12.7-hotspot\bin\javaw.exe

1
由于使用了NVIDIA的Quadro视图,我遇到了这个错误,所以我的解决方法是禁用它。

-2

你的代码中可能有拼写错误,请检查一下,

我在 Electron 中遇到了类似的错误

[7608:1220/032708.152:ERROR:gpu_init.cc(523)] Passthrough is not supported, GL is disabled, ANGLE is

问题是类型错误

之前的代码:

错误的代码

// events funstions of electron
SM_app.on('redy', F_create_windows);

fixed code

// events funstions of electron
SM_app.on('ready', F_create_windows);

我的代码中缺少了aredy

再次检查您的代码


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接