首頁  >  文章  >  web前端  >  為什麼 Puppeteer 的 `page.evaluate` 使用 `querySelectorAll` 回傳空物件?

為什麼 Puppeteer 的 `page.evaluate` 使用 `querySelectorAll` 回傳空物件?

DDD
DDD原創
2024-11-22 06:49:17648瀏覽

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

Puppeteer 評估QuerySelectorAll 傳回空白物件

當使用Puppeteer 的page.evaluate 函式透過查詢以下問題:傳回的陣列包含空物件。發生這種情況是因為 JavaScript 物件本質上不是 JSON 可序列化的。

一種潛在的解決方案是從元素中提取特定數據,確保它可以序列化為 JSON。例如,如果您對元素的href 屬性感興趣,可以如下修改程式碼:

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

此程式碼將傳回表示所選元素的href 屬性的字串數組,該數組可以輕鬆序列化和列印。

以上是為什麼 Puppeteer 的 `page.evaluate` 使用 `querySelectorAll` 回傳空物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn