Я использую Puppeteer (на самом деле PuppeteerSharp, но API тот же), чтобы сделать скриншот веб-страницы из моего приложения.
Проблема заключается в том, что страница выполняет несколько изменений макета через JavaScript послестраница загружена, поэтому проходит несколько секунд, прежде чем вы увидите «окончательную» версию страницы.
В данный момент я просто жду «безопасного» количества секунд, прежде чем сделать снимок экрана, но этоОчевидно, это не очень хороший подход, так как временное замедление производительности на компьютере может привести к неполному рендерингу.
Поскольку кукловод использует Chromium в фоновом режиме, существует ли способ перехватывать события макета / рендеринга Chromium (например, выможно сделать в консоли DevTools в Chrome)?Или, действительно, ЛЮБОЙ другой способ узнать, когда страница перестала «меняться» (визуально я имею в виду)
РЕДАКТИРОВАТЬ, еще немного информации: контент динамический, поэтому я не знаю, что это будет делатьрисовать и как.По сути, это фреймворк, который рисует различные диаграммы / таблицы / изображения / и т.д.(не с открытым исходным кодом, к сожалению).Однако, протестировав инструмент «производительность» в Chrome DevTools, я заметил, что после завершения рендеринга страницы все действия на временной шкале прекращаются, поэтому, если бы я мог получить доступ к этой информации, было бы здорово.К сожалению, единственный способ сделать это в Puppeteer (который я вижу) - использовать функцию «Tracing», но она не работает в режиме реального времени.Вместо этого он создает дамп трассировки в файл, и буфер слишком велик, чтобы его можно было использовать (файл по-прежнему равен 0 байтам после того, как моя страница уже завершила рендеринг, он сбрасывается на диск только тогда, когда я вызываю «stopTracing»).Мне нужно получить доступ к функции трассировки кукловода в режиме реального времени, например, через события или поток в памяти, но, похоже, это не поддерживается API.Есть ли способ обойти это?