Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Memastikan Halaman Lengkap Sebelum Menjana PDF dengan Puppeteer?
Apabila membuat PDF daripada halaman web menggunakan Puppeteer, adalah penting untuk menunggu sehingga halaman dimuatkan sepenuhnya untuk memastikan kesempurnaan dan ketepatan dokumen yang dihasilkan. Mari kita mendalami cara untuk mencapai ini tanpa menggunakan kelewatan manual.
Kaedah page.waitForNavigation() menyediakan cara yang boleh dipercayai untuk menunggu acara navigasi halaman, termasuk pemuatan halaman awal. Dengan menggunakan pilihan networkidle0, kami menyatakan bahawa fungsi perlu menunggu sehingga tiada lagi sambungan rangkaian aktif.
<code class="javascript">await page.goto(fullUrl, { waitUntil: 'networkidle0', });</code>
Setelah halaman dimuatkan, kami boleh mengisi borang log masuk dan menyerahkannya.
<code class="javascript">await page.type('#username', 'scott'); await page.type('#password', 'tiger'); await page.click('#Login_Button');</code>
Seterusnya, kami boleh menambah panggilan waitForNavigation() tambahan untuk memastikan proses log masuk selesai.
<code class="javascript">await page.waitForNavigation({ waitUntil: 'networkidle0', });</code>
Akhir sekali, kami boleh meneruskan penjanaan PDF.
<code class="javascript">await page.pdf({ path: outputFileName, displayHeaderFooter: true, headerTemplate: '', footerTemplate: '', printBackground: true, format: 'A4', });</code>
Jika anda menghadapi kes di mana kandungan dinamik tertentu perlu disertakan dalam PDF, anda boleh melengkapkan pendekatan ini dengan page.waitForSelector() untuk menunggu elemen tertentu muncul pada halaman sebelum menjana PDF.
<code class="javascript">await page.waitForSelector('#example', { visible: true, });</code>
Dengan menggunakan teknik ini, anda boleh memastikan bahawa Puppeteer menunggu halaman dimuatkan sepenuhnya sebelum menjana PDF, menghasilkan penjanaan dokumen yang komprehensif dan tepat.
Atas ialah kandungan terperinci Bagaimana untuk Memastikan Halaman Lengkap Sebelum Menjana PDF dengan Puppeteer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!