Закрытие вкладок кластера кукловодов до того, как я смогу сделать скриншот.
Я использую кластер кукловодов с maxConcurrency 8. Мне нужно делать снимок экрана после каждой загрузки страницы [Прибл.20000 URL].Page.screenshot для меня бесполезен.Мой скриншот должен включать в себя строку URL и рабочий стол.Это в основном как полный скриншот рабочего стола.Поэтому я использую ImageMagick для создания снимка экрана (и xvfb для управления несколькими экранами)
Проблема заключается в следующем:
- иногда снимок экрана выполняется перед переключением на правую вкладку.
- пустой снимок экрана, потому что текущая вкладка закрыта, а вкладка, которая еще не загружена, выходит вперед.
- иногда возникает ошибка, поскольку снимок экрана не может быть сделан, поскольку все вкладки были закрыты.
Что я делаю: когда загружается каждая страница, я вызываю page.bringToFront и вызываю child_process, который делает снимок рабочего стола с помощью команды импорта изображений image magic *.
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 не работал, и обещание также, похоже, не работало.
Я не хочу, чтобы кукловод закрывал вкладку самостоятельно.Вместо этого, может ли он выдать событие обратного вызова после загрузки страницы, подождать, пока функция обратного вызова не будет выполнена и возвращена, а затем вкладка закрыта ??