Rumah >hujung hadapan web >tutorial js >Mengapakah `page.evaluate` Puppeteer mengembalikan objek kosong dengan `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!