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

问题描述 投票:0回答:1

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)

也安装了那些小家伙。 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)
python webdriver selenium-chromedriver headless
1个回答
0
投票

此问题将在客户端得到解决,并更改以下路径中的注册表项:

路径:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome 名称:Disable3DAPI 值:0

© www.soinside.com 2019 - 2024. All rights reserved.