Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menghantar Pembolehubah ke Fungsi `page.evaluate()` Puppeteer?

Bagaimanakah Saya Boleh Menghantar Pembolehubah ke Fungsi `page.evaluate()` Puppeteer?

Patricia Arquette
Patricia Arquetteasal
2024-12-10 17:42:11147semak imbas

How Can I Pass Variables to Puppeteer's `page.evaluate()` Function?

Pembolehubah dalam Fungsi page.evaluate()

Fungsi Puppeteer's page.evaluate() ialah alat serba boleh untuk melaksanakan JavaScript dalam pelaksanaan halaman konteks. Walau bagaimanapun, menghantar pembolehubah ke dalam fungsi ini boleh menjadi rumit.

Pembolehubah Tidak Ditakrifkan

Apabila anda cuba mengakses pembolehubah dalam fungsi page.evaluate(), anda mungkin menghadapi ralat "evalVar: undefined". Ini kerana pembolehubah yang ditakrifkan di luar fungsi tidak boleh diakses di dalamnya.

Melalui Pembolehubah melalui Argumen

Untuk menyelesaikan isu ini, hantar pembolehubah sebagai hujah ke halaman fungsi seperti ini:

const links = await page.evaluate((evalVar) => {

  console.log(evalVar); // 2. Should be defined now

  ...

}, evalVar); // 1. Pass the variable as an argument

Berbilang Pembolehubah

Anda juga boleh menghantar berbilang pembolehubah dengan menambahkan lebih banyak argumen pada page.evaluate():

await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)

Parameter Boleh Bersiri

Argumen yang anda berikan mestilah sama ada boleh bersiri kepada JSON atau menjadi JSHandles objek dalam penyemak imbas. Untuk butiran, rujuk dokumentasi rasmi Puppeteer: https://pptr.dev/#?show=api-pageevaluatepagefunction-args.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Pembolehubah ke Fungsi `page.evaluate()` Puppeteer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn