I've read everything I can on this, including:
I've tried every variation of everything in the docs and I can't get this to work, here's my current code
async function render(url)
{
functions.logger.log('Rendering `' + url + '`');
const browser = await puppeteer.launch({
args: ["--no-sandbox"],
headless: true
});
const page = await browser.newPage();
await page.goto(url, { waitUntil: ['load', 'domcontentloaded', 'networkidle0'], timeout: 20000 });
await page.setViewport({
width: 1280,
height: 800
});
await autoScroll(page);
var image = await page.screenshot({ fullPage: true });
return image;
}
async function autoScroll(page){
await page.evaluate(async () => {
await new Promise((resolve, reject) => {
var totalHeight = 0;
var distance = 400;
var timer = setInterval(() => {
var scrollHeight = document.body.scrollHeight;
window.scrollBy(0, distance);
totalHeight += distance;
if(totalHeight >= scrollHeight){
clearInterval(timer);
resolve();
}
}, 100);
});
});
}
Rendering this website https://www.medichecks.com misses off the carousel at the top.
Without writing code specific to this website (it's an arbitrary example), how do I make Puppeteer properly wait until "everything" is loaded?
question from:
https://stackoverflow.com/questions/65940764/pupeteer-wait-for-page-load 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…