相关疑难解决方法(0)

当使用客户端函数填充 DOM 时,如何等待所有图像从 puppeteer 中的 page.evaluate 函数加载

我试图让代码执行等待所有图像加载,然后puppeteer截取屏幕截图。当调用 initData() 函数时,我的 DOM 被填充,该函数在客户端 js 文件中定义。延迟或超时是一种选择,但我相信必须有更有效的方法来做到这一点。

    (async (dataObj) => {
             const url = dataObj.url;
             const payload = dataObj.payload;
             const browser = await puppeteer.launch({ headless: false,devtools:false});
             const page = await browser.newPage();
             await page.goto(url,{'waitUntil': 'networkidle0'});

             await page.evaluate((payload) => {
               initData(payload);
                //initData is a client side function that populates the DOM, need to wait 
                //here till the images are loaded. 
               },payload)

             await page.setViewport({ width: 1280, height: 720 })
             await page.screenshot({ path: 'test.png' });
             await browser.close();
    })(dataObj)
Run Code Online (Sandbox Code Playgroud)

提前致谢。

javascript screenshot node.js google-chrome-headless puppeteer

8
推荐指数
1
解决办法
5914
查看次数