gpt4 book ai didi

javascript - 无法读取未定义的外部 page.evaluate() 属性 'map'

转载 作者:行者123 更新时间:2023-11-30 14:04:43 26 4
gpt4 key购买 nike

考虑以下代码:

let foo = await page.evaluate(
() => {
let bar = [...document.querySelectorAll(".foobar")];
return bar.map( (u) => u.textContent.trim() );
}
);
foo.forEach( (u) => { console.log(u); });

现在考虑这个变体:

let bar = await page.evaluate(
() => {
return [...document.querySelectorAll(".foobar")];
}
);
let foo = bar.map((u) => u.textContent.trim());
bar.forEach( (u) => { console.log(u); } );

我希望两者都记录相同的结果,但实际上前者运行良好,后者抛出

Cannot read property 'map' of undefined

有人可以解释为什么我不能从 page.evaluate() 中取出 map() 吗?

FWIW,page 是一个puppeteer NewPage()

最佳答案

传递给 page.evaluate 的函数被序列化并通过网络发送到浏览器,然后在浏览器中执行。这意味着返回值也必须通过网络发送,因此 serialisable .元素列表不可序列化。

作为mentioned in the documentation ,如果函数的返回值不可序列化,则返回 undefined。

关于javascript - 无法读取未定义的外部 page.evaluate() 属性 'map',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55665954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com