puppeteer 等页面加载完再截图

目前用puppeteer 搭配node实现给某个网站截图的功能,但是有几率会出现截的图是没有加载后端数据的图片,推测是puppeteer还没加载完接口,就开始截图了,目前在网上搜索到的解决方法总结汇总如下:

1.主要是在page.goto 后面加上一个配置

'waitUntil':'networkidle0'

这个代表的意思是当前页面在500ms内没有http请求存在,再返回
还有一个值是networkidle2,代表的意思是当前页面在500ms内没有2个http请求存在

2.增加await page.content();,这句话的意思是获取当前页面的document数据

代码如下:

    const browser = await puppeteer.launch({
        args: ["--no-sandbox", "--disable-setuid-sandbox"]
    });
    const page = await browser.newPage();
    const response = await page.goto(XXX,{'timeout':1000*30,'waitUntil':'networkidle0'});
    await page.setViewport({
            width: 1920,
            height: 1080
        });
    await autoScroll(page);
    await page.content();
    await page.screenshot({
            path: './paper.jpeg',
            fullPage: true,
            quality:70
        });
    await browser.close();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容