无头Chrome Puppeteer:告知Puppeteer已准备就绪的页面

时间:2018-09-28 17:56:18

标签: javascript node.js google-chrome-devtools puppeteer google-chrome-headless

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

<script type='text/javascript' src='https://code.jquery.com/jquery-3.3.1.min.js'></script>
<script type='text/javascript'>
window.Swiper || document.write('<script src="http://localhost/wordpress/wp-content/themes/wp-theme/js/jQuery.js">\x3C/script>')
</script>

我已经尝试过await page.goto(url); const buffer = await page.pdf({ format: 'A4' }) 和其他各种waitUntil:'networkidle0',但是除了时间延迟以外,其他任何东西都不足以捕获加载的数据。

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

理想情况下,我希望页面触发事件,而Puppeteer则要等待它,就像这样:

waits

这可能吗?

1 个答案:

答案 0 :(得分: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'
});