在我截屏之前,Puppeteer 集群关闭选项卡。
我正在使用具有 maxConcurrency 8 的 puppeteer 集群。我需要在每个页面加载后截屏 [Approx. 20000 个网址]。Page.screenshot 对我没有用。我的屏幕截图应该包括 URL 栏和桌面。它基本上就像一个完整的桌面截图。所以我使用 ImageMagick 来截屏,(和 xvfb 用于多屏幕管理)
问题是:
- 有时,在切换到右侧选项卡之前会截取屏幕截图。
- 空白屏幕截图,因为当前选项卡已关闭,尚未加载的选项卡出现在前面。
- 有时,由于所有选项卡都已关闭,因此无法截取屏幕截图会引发错误。
我正在做的是:当每个页面加载时,我调用 page.bringToFront 并生成一个 child_process,它使用 image magic import 命令截取桌面。
cluster.queue(postUrl.href); //for adding urls to queue
await page.waitForNavigation(); // Wait for page to load before screenshot
//taking screenshot
const { spawnSync} = require('child_process');
const child = spawnSync('import', [ '-window', 'root', path]);
不想在页面加载后设置等待时间,nodejs ImageMagick 没有工作,promise 似乎也没有工作。
我不希望木偶操纵者自行关闭标签。相反,它是否可以在页面加载后给出回调事件,等待回调函数执行并返回然后关闭选项卡?