Я не очень хорош в этом, но после долгих поисков я нашел, что одно решение дает хорошие результаты для одного моего требования. Вот фрагмент кода, который я использовал для обработки сценариев с отложенной загрузкой.
const bodyHandle = await page.$('body');
const { height } = await bodyHandle.boundingBox();
await bodyHandle.dispose();
console.log('Handling viewport...')
const viewportHeight = page.viewport().height;
let viewportIncr = 0;
while (viewportIncr + viewportHeight < height) {
await page.evaluate(_viewportHeight => {
window.scrollBy(0, _viewportHeight);
}, viewportHeight);
await wait(30);
viewportIncr = viewportIncr + viewportHeight;
}
console.log('Handling Scroll operations')
await page.evaluate(_ => {
window.scrollTo(0, 0);
});
await wait(100);
await page.screenshot({path: 'GoogleHome.jpg', fullPage: true});
Из этого я могу даже снимать длинные скриншоты. Надеюсь, это поможет вам.