Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.4k views
in Technique[技术] by (71.8m points)

puppeteer - Pupeteer wait for page load

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...