首页 > 解决方案 > 不支持直通,GL 被禁用

问题描述

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

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

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

标签: pythonseleniumselenium-webdriverselenium-chromedriver

解决方案


测试环境

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


推荐阅读