Rumah >hujung hadapan web >tutorial js >Mengapakah `page.evaluate` Puppeteer mengembalikan objek kosong dengan `querySelectorAll`?

Mengapakah `page.evaluate` Puppeteer mengembalikan objek kosong dengan `querySelectorAll`?

DDD
DDDasal
2024-11-22 06:49:17700semak imbas

Why does Puppeteer's `page.evaluate` return empty objects with `querySelectorAll`?

Puppeteer Evaluated QuerySelectorAll Returning Empty Objects

Apabila menggunakan Puppeteer's page.evaluate fungsi untuk menanyakan elemen halaman dengan querySelectorAll, anda mungkin menghadapi masalah tatasusunan yang dikembalikan mengandungi objek kosong. Ini berlaku kerana objek JavaScript secara semula jadi tidak boleh bersiri JSON.

Satu penyelesaian yang berpotensi ialah mengekstrak data tertentu daripada elemen, memastikan ia boleh disirikan ke dalam JSON. Sebagai contoh, jika anda berminat dengan atribut href bagi elemen, anda boleh mengubah suai kod anda seperti berikut:

const list = await page.evaluate((sel) => {
  let elements = Array.from(document.querySelectorAll(sel));
  let links = elements.map(element => element.href);
  return links;
}, sel);

Kod ini akan mengembalikan tatasusunan rentetan yang mewakili atribut href bagi elemen yang dipilih, yang boleh disiri dan dicetak dengan mudah.

Atas ialah kandungan terperinci Mengapakah `page.evaluate` Puppeteer mengembalikan objek kosong dengan `querySelectorAll`?. 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