小编Rob*_*Rob的帖子

如何在无头环境中正确初始化 Chrome 上的 WebGL 以与 MapBox 一起使用?

UI 不渲染 GL 元素,导致测试失败并出现错误:无法初始化 WebGL。

测试通过 Jenkins 在 docker 实例 (python:3.7-alpine3.9) 上执行。

在本地测试中,我们尝试使用各种网络驱动程序选项,包括 --use-gl=osmosa/swiftshader 等。这些问题是,如果成功应用特定选项,我并没有真正得到反馈。

options = webdriver.ChromeOptions()
options.add_argument("--headless") 
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--disable-gpu")
options.add_argument("--use-gl=swiftshader")
options.add_argument("--enable-webgl")
options.add_argument("--ignore-gpu-blacklist")
web_driver = WebDriver(executable_path='chromedriver', options=options)
Run Code Online (Sandbox Code Playgroud)

也安装了那些小家伙。apk 添加 mesa-osmesa apk 添加 mesa-gl

以上都不会带来幸福的结局。访问网页https://browserleaks.com/webgl,其中在所用浏览器的上下文中返回 webgl 信息,返回了 WebGL 支持的模糊信息:False,但支持但已禁用。

This browser supports WebGL: False (supported, but disabled in browser settings, or blocked by extensions)
This browser supports WebGL 2: False (supported, but disabled in browser settings, or blocked by extensions)
Run Code Online (Sandbox Code Playgroud)

python webdriver headless selenium-chromedriver

5
推荐指数
1
解决办法
2926
查看次数