我想使用WebGL拍摄网站的屏幕截图。我不必使用GPU来打开该网站。使用仿真对我来说已经足够了。
一开始,我已经尝试过headless-chrome来做到这一点。这可以截取序数网站的截图。但是,它不适用于WebGL画布。 我认为可能的一种方法是使用OSMesa或其他东西来模拟OpenGL。
我已经用我所有的策略来克服这个问题。这实际上可以吗? 如果是,请告诉我该怎么做。如果不是,我想知道原因。
感谢。
答案 0 :(得分:1)
是的,有可能!
您需要以下各项的正确组合:
['--use-gl=osmesa', '--enable-webgl', '--ignore-gpu-blacklist', '--homedir=/tmp', '--single-process', '--data-path=/tmp/data-path', '--disk-cache-dir=/tmp/cache-dir']
lessserver-chrome github项目上的该线程讨论了此问题,并提供了一些我用来使用Page.captureScreenshot()在AWS Lambda上捕获WebGL内容的屏幕截图的二进制文件。
https://github.com/adieuadieu/serverless-chrome/issues/108#issuecomment-416494572
(请参阅@apalchys在8月28日发表的评论)
此示例使用swiftshader,这似乎是以后的首选选项。
但是请注意,使用该版本无法使用Page.printToPDF()创建PDF-WebGL内容仅显示为空白/白色。但是,我也可以使用使用osmesa的早期版本来获取Page.printToPDF(),请参阅https://github.com/adieuadieu/serverless-chrome/issues/108#issuecomment-371199530