不支持直通,禁用 GL

Hoi*_*ert 9 python selenium selenium-chromedriver selenium-webdriver

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

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

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

Cha*_*amm 20

我对 selenium 和 chromedriver 也有同样的问题。对我来说,解决方案是在 Chrome 浏览器中激活 WebGL。我做了以下事情

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

在此输入图像描述

  1. chrome://flagsWebGL->在搜索栏中 搜索-> 启用/激活 WebGL在此输入图像描述

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


J. *_*hoi 6

测试环境

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

解决方案

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

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

在Windows中,的情况下,--headless--disable-gpu选项都需要使chromedriver工作作为一个无头模式[2]。--disable-gpu由于错误 [3],Linux似乎也需要它。

  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