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
Lepaskan: 2024-11-22 06:49:17
asal
725 orang telah melayarinya

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);
Salin selepas log masuk

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 Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan