因此,我的目标是计算其中包含多个div的div类的子级数目;为此,我选择了div,然后使用children
属性,然后使用其length
属性对子级进行计数并打印。
为了实现我的目标,我试图在puppeteer中实现以下代码:
$('div[data-test-selector="center-window__content"]').children
(可在chrome调试控制台上完美运行)
这是我转换后的代码:
let childrens = await page.evaluate(() => document.querySelector('div[data-test-selector="center-window__content"]'), i => Array.from(i.children));
但是此表达式的计算结果为undefined
。
在evaluate
的文档中,有人说:
如果传递给page.evaluate的函数返回一个不可序列化的值,则page.evaluate解析为undefined。
是这种情况吗?我该如何解决?
谢谢。
编辑:
所以最终我认为由于某些原因,操纵up的人无法序列化children数组。
我最终使用了它:
const notifs = await page.evaluate(() => {
return (Array.from(document.querySelector('[data-test-selector="center-window__content"]').children).length);
})
感谢@TerryLennox的帮助。
答案 0 :(得分:2)
您可以尝试一下:
const children = await page.evaluate(() => {
return (Array.from(document.querySelector('div[data-test-selector="center-window__content"]').children).length);
})
console.log("Result:", children);
对此进行测试
html
<html>
<div data-test-selector="center-window__content">
some text
<div>Child 1</div>
<div>Child 2</div>
<div>Child 3</div>
</div>
</html>