【发布时间】:2021-12-07 05:42:39
【问题描述】:
问题是我在 puppeteer 中有一个函数,它返回一个对象列表,但是当我想分析它时,它告诉我它是 null 或未定义。
await page.waitForSelector(('.carousel .loaded'), { timeout: 90000 })
const _img = await page.evaluate(
() => document.querySelectorAll('.carousel .loaded li'));
当我分析答案时,它告诉我它是空的。
if( Object.keys(_img).length > 0){ //do }
if( _img.length > 0){ //do }
如果我在浏览器控制台中重复查询,它会起作用。
【问题讨论】:
-
请用英文提问。
-
不幸的是,
page.evaluate()只能传输可序列化的值(大致是 JSON 可以处理的值)。document.querySelectorAll()返回一个不可序列化的 DOM 元素集合。您需要返回可序列化的值(文本数组等)或使用page.$$(selector)和ElementHandleAPI 之类的东西。
标签: node.js typescript puppeteer browser-automation