【问题标题】:Passthrough is not supported, GL is disabled不支持直通,GL 被禁用
【发布时间】:2021-08-02 15:59:42
【问题描述】:

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

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

当我第一次找到它时,我取消了 chrome 的硬件硬件加速也没有解决问题。

【问题讨论】:

  • 这对你来说是一个表演终结者吗?
  • @cruisepandey 是的。当该消息出现时,我无法使用控制台
  • 我已经使用 Selenium 和 Chromedriver 好几年了。这个问题发生在几个月前。似乎带有 headless 选项的 Chromedriver v.89 是导致此问题的原因 [1, 2]。
  • @J.Choi 可能你说得对,谢谢。现在我想我可以在代码中操作 webdriver chromeoptions
  • @Hoinobert 你是如何操作 webdriver chromeoptions 的?

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

测试环境

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

解决方案

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

我没记错,错误消息 Passthrough is not supported, GL is swiftshader 在 Chromedriver 版本 89 之后显示为错误(但不确定)[1]。

在 Windows 的情况下,需要 --headless--disable-gpu 选项才能使 chromedriver 以无头模式工作 [2]。由于存在错误 [3],Linux 似乎也需要 --disable-gpu

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

  2. 在我的情况下,错误消息不会影响无头 chrome 的操作。正如我发现的那样,“通常情况下,Chrome 会在没有 GPU 的情况下恢复工作。但是,为了获得一致的结果,遥测需要 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

【讨论】:

  • --disable-software-rasterizer 为我解决了这个问题;感谢您的详细回答
【解决方案2】:

我在使用 selenium 和 chromedriver 时遇到了同样的问题。对我来说,解决方案是在 Chrome 浏览器中激活 WebGL。我做了以下

  1. chrome://settings -> 点击底部的Advanced -> 勾选Use hardware acceleration when available

  1. chrome://flags -> 在搜索栏中搜索 WebGL -> 启用/激活 WebGL 这里有更好的说明:https://superuser.com/questions/836832/how-can-i-enable-webgl-in-my-browser

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      我在 Eclipse 启动期间收到此错误,并通过更改两件事来修复它:

      1. 现在为 Eclipse 使用更新的 Java VM,就我而言,我正在从 Java8 迁移到 Java11
      2. 也从 JRE 迁移到 JDK

      添加Eclipse启动参数:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-21
        • 1970-01-01
        • 1970-01-01
        • 2017-03-12
        相关资源
        最近更新 更多