0

我正在尝试创建具有许多外部 AJAX 请求的页面的 PDF。

await page.goto(url);
const buffer = await page.pdf({ format: 'A4' })

我已经尝试过waitUntil:'networkidle0'和其他各种waits方法,但只有时间延迟足以捕获加载的数据。

所以现在我试图让页面告诉 Puppeteer 它已经准备好了,但是从文档中看不到如何。

理想情况下,我希望页面触发一个事件,并且 Puppeteer 等待它,如下所示:

await page.goto(url);
await page.on('readyForPdf');
const buffer = await page.pdf({ format: 'A4' })

这可能吗?

4

1 回答 1

0

我建议使用page.waitForSelector()等待您期望加载的最后一个元素。

示例用法:

await page.goto( 'https://www.example.com/', { waitUntil : 'networkidle0' } );

await page.waitForSelector( '#last-expected-element' );

const buffer = await page.pdf({
    path   : 'page.pdf',
    format : 'A4'
});
于 2018-09-28T20:07:53.623 回答