我目前正在使用Github Actions、Playwright和无头Chromium组合进行一些端对端测试。现在,我的测试需要相当长的时间(简单测试需要几十秒),这不是理想的情况,特别是考虑到我的用例需要经常运行许多这样的测试。经过一些研究,我发现了这个链接,很多人似乎都在参考它:https://michelkraemer.com/enable-gpu-for-slow-playwright-tests-in-headless-mode/
它提供了如何在无头模式下启用GPU硬件加速以加快Playwright测试速度的说明。然而,无论我做什么,硬件加速都无法在无头模式下启用。在有头模式下,它实际上是默认启用的,一切都更加流畅。以下是我的代码:
我已经尝试了
更新:对我来说,
这里是
这里是添加
非常感谢您的帮助!
(async () => {
let browser = await chromium.launch({
args: ['--use-gl=desktop', '--use-angle=default'],
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('chrome://gpu');
await page.pdf({
path: 'page.pdf',
});
})();
我已经尝试了
--use-gl=egl
,但无济于事。每次,pdf都显示仅软件,硬件加速不可用
。此时我怀疑可能是我的笔记本电脑硬件出了问题,但我不知道如何找出确切的原因。我还确认了我的命令行参数实际上是通过Playwright传递的,因为使用--window-size
确实改变了窗口大小,--disable-software-rasterization
似乎也确实禁用了一些东西。更新:对我来说,
--use-gl=swiftshader
没有任何区别。另外,我认为我的问题在于--ignore-gpu-blocklist
,因为即使我包含它,该标志仍然保持禁用,这让我相信某些东西正在强制我的GPU不提供硬件加速。如果有帮助的话,我的笔记本电脑的GPU是Nvidia 2060,尽管我的代码在通过GitHub Action远程运行时也无法工作。这里是
chrome://gpu
的结果的pastebin:https://pastebin.com/U6m0pcjY这里是添加
--disable-software-rasterization
后的结果的pastebin:https://pastebin.com/uDfQuqQq非常感谢您的帮助!
--use-gl=swiftshader
对我没有任何影响。 - WubbaLubbaDubbDubb--ignore-gpu-blocklist
相关。不知何故,在命令行上提供它时,chrome://flags
中的标志仍然被禁用。 - WubbaLubbaDubbDubb