我熟悉Puppeteer在Vue.js应用程序中使用,但我无法弄清楚如何根据页面上的特定元素生成PDF.我可以基于整页成功创建PDF,但这并不理想.有没有我错过的方法或课程可以允许这个?我找不到一个可链接的页面函数来按选择器进行过滤,如下所示:
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://what.a.fancy/website', {waitUntil: 'networkidle2'});
await page.$('.just-this-html').pdf(options);
我确实看到有一个页面.$(选择器)函数,但我不知道如何使用.then()调用链接,该调用可以将返回的HTML访问为PDF.
谢谢!
解决方法:
试试这个代码.等待page.setContent()page.setContent
例
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com/', {waitUntil: 'networkidle2'});
const dom = await page.$eval('div.jsb', (element) => {
return element.innerHTML
}) // Get DOM HTML
await page.setContent(dom) // HTML markup to assign to the page for generate pdf
await page.pdf(options)