Maison  >  Article  >  interface Web  >  Comment garantir la complétion d'une page avant de générer des PDF avec Puppeteer ?

Comment garantir la complétion d'une page avant de générer des PDF avec Puppeteer ?

DDD
DDDoriginal
2024-10-26 07:39:02735parcourir

How to Ensure Page Completion Before Generating PDFs with Puppeteer?

Générer des PDF avec Puppeteer : attendre la fin de la page

Lors de la création de PDF à partir de pages Web à l'aide de Puppeteer, il est crucial d'attendre que la page soit complètement chargée pour garantir son exhaustivité. et l'exactitude du document généré. Voyons comment y parvenir sans recourir à des retards manuels.

La méthode page.waitForNavigation() fournit un moyen fiable d'attendre les événements de navigation dans les pages, y compris le chargement initial de la page. En utilisant l'option networkidle0, nous précisons que la fonction doit attendre qu'il n'y ait plus de connexions réseau actives.

<code class="javascript">await page.goto(fullUrl, {
  waitUntil: 'networkidle0',
});</code>

Une fois la page chargée, nous pouvons remplir le formulaire de connexion et le soumettre.

<code class="javascript">await page.type('#username', 'scott');
await page.type('#password', 'tiger');
await page.click('#Login_Button');</code>

Ensuite, nous pouvons ajouter un appel supplémentaire waitForNavigation() pour garantir que le processus de connexion est terminé.

<code class="javascript">await page.waitForNavigation({
  waitUntil: 'networkidle0',
});</code>

Enfin, nous pouvons procéder à la génération du PDF.

<code class="javascript">await page.pdf({
  path: outputFileName,
  displayHeaderFooter: true,
  headerTemplate: '',
  footerTemplate: '',
  printBackground: true,
  format: 'A4',
});</code>

Si vous rencontrez des cas où certains contenus dynamiques doivent être inclus dans le PDF, vous pouvez compléter cette approche avec page.waitForSelector() pour attendre que l'élément spécifique apparaisse sur la page avant de générer le PDF.

<code class="javascript">await page.waitForSelector('#example', {
  visible: true,
});</code>

En utilisant ces techniques, vous pouvez vous assurer que Puppeteer attend que la page soit complètement chargée avant de générer le PDF, ce qui entraîne une génération de document complète et précise.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn