不支持直通,禁用GL
我尝试使用 selenium 和 webdriver_manager.chrome 抓取特定站点,并且我的代码完全抓取了该站点的元素。但是爬取之后,控制台窗口出现如下错误信息。
ERROR:gpu_init.cc(426) Passthrough is not supported, GL is disabled
当我第一次找到它时,我取消了 chrome 的硬件硬件加速,它也没有解决问题。
回答
测试环境
Windows 操作系统,Chromedriver 版本 89,无头模式
解决方案
我不确定这是否可以解决您的问题,因为错误消息略有不同。
我没记错,错误消息Passthrough is not supported, GL is swiftshader在 Chromedriver 版本 89 之后显示为错误(但不确定)[1]。
在Windows中,的情况下,--headless和--disable-gpu选项都需要使chromedriver工作作为一个无头模式[2]。--disable-gpu由于错误 [3],Linux似乎也需要它。
-
如果删除了
--headless和--disable-gpu选项,则不会出现错误消息。但是,chromedriver 不再作为无头模式工作。 -
就我而言,错误消息不会影响无头 chrome 的操作。正如我发现的那样,“通常情况下,Chrome 会在没有 GPU 的情况下恢复工作。但是,为了获得一致的结果,遥测需要 GPU [4] 的存在。”
-
我还应用
--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