Ale*_*lex 4 jquery node.js puppeteer
所以我的目标是计算一个 div 类中包含多个 div 的子级的数量;我通过选择 div 然后使用children属性来做到这一点,然后我计算子项及其length属性并打印它。
为了实现我的目标,我尝试在 puppeteer 中实现此代码:
$('div[data-test-selector="center-window__content"]').children
Run Code Online (Sandbox Code Playgroud)
(在 chrome 调试控制台上完美运行)
这是我转换后的代码:
let childrens = await page.evaluate(() => document.querySelector('div[data-test-selector="center-window__content"]'), i => Array.from(i.children));
Run Code Online (Sandbox Code Playgroud)
然而,该表达式的计算结果为undefined。
在他们的文档中evaluate说:
如果传递给 page.evaluate 的函数返回不可序列化的值,则 page.evaluate 解析为 undefined。
这里是这样吗?我该如何修复它?
提前致谢。
编辑:
所以最后我认为木偶操作者由于某种原因无法序列化子数组。
我最终使用了它:
const notifs = await page.evaluate(() => {
return (Array.from(document.querySelector('[data-test-selector="center-window__content"]').children).length);
})
Run Code Online (Sandbox Code Playgroud)
感谢@TerryLennox 的帮助。
您可以尝试一下:
const children = await page.evaluate(() => {
return (Array.from(document.querySelector('div[data-test-selector="center-window__content"]').children).length);
})
console.log("Result:", children);
Run Code Online (Sandbox Code Playgroud)
对此进行测试
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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6771 次 |
| 最近记录: |