Beim Erstellen von PDFs aus Webseiten mit Puppeteer ist es wichtig zu warten, bis die Seite vollständig geladen ist, um die Vollständigkeit sicherzustellen und Genauigkeit des generierten Dokuments. Lassen Sie uns untersuchen, wie Sie dies erreichen können, ohne auf manuelle Verzögerungen zurückgreifen zu müssen.
Die Methode page.waitForNavigation() bietet eine zuverlässige Möglichkeit, auf Seitennavigationsereignisse zu warten, einschließlich des anfänglichen Ladens der Seite. Mit der Option networkidle0 geben wir an, dass die Funktion warten soll, bis keine aktiven Netzwerkverbindungen mehr vorhanden sind.
await page.goto(fullUrl, {
waitUntil: 'networkidle0',
});
Sobald die Seite geladen ist, können wir das Anmeldeformular ausfüllen und abschicken.
await page.type('#username', 'scott');
await page.type('#password', 'tiger');
await page.click('#Login_Button');
Als nächstes können wir einen zusätzlichen Aufruf von waitForNavigation() hinzufügen, um sicherzustellen, dass der Anmeldevorgang abgeschlossen ist.
await page.waitForNavigation({
waitUntil: 'networkidle0',
});
Schließlich können wir mit der Generierung des PDF fortfahren.
await page.pdf({
path: outputFileName,
displayHeaderFooter: true,
headerTemplate: '',
footerTemplate: '',
printBackground: true,
format: 'A4',
});
Wenn Sie auf Fälle stoßen, in denen bestimmte dynamische Inhalte in die PDF-Datei aufgenommen werden müssen, können Sie diesen Ansatz mit page.waitForSelector() ergänzen, um vor der Generierung darauf zu warten, dass das spezifische Element auf der Seite erscheint PDF.
await page.waitForSelector('#example', {
visible: true,
});
Durch den Einsatz dieser Techniken können Sie sicherstellen, dass Puppeteer darauf wartet, dass die Seite vollständig geladen ist, bevor das PDF generiert wird, was zu einer umfassenden und genauen Dokumentgenerierung führt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3