我无法找到一种方法来在 puppeteer 中迭代给定 Node 的子 Node 。事先不知道html结构,只知道父元素的id。
var elemId = "myelemid";
const doc = await page._client.send('DOM.getDocument');
const node = await page._client.send('DOM.querySelector', {
nodeId: doc.root.nodeId,
selector: '#' + elemId
});
//node.children empty
//node['object'].children empty
//try requesting childnodes
var id = node.nodeId;
var childNodes = await page._client.send('DOM.requestChildNodes', {
nodeId: id
});
//childNodes empty
//try requesting by resolveNode?
var aNode = await page._client.send('DOM.resolveNode', {
nodeId: id
});
//aNode.children is empty
如果您不知道 puppeteer 中的 html 结构,有没有办法获取 Node 的子 Node ?
最佳答案
我在这里要做的是使用 Puppeteer 的 evaluate
方法将 Node 的子元素返回给脚本,如下所示:
const nodeChildren = await page.$eval(cssSelector, (uiElement) => {
return uiElement.children;
});
console.log(nodeChildren); // Outputs the array of the nodes children
希望这对您有所帮助!
关于node.js - 使用 puppeteer 如何获取 Node 的所有子 Node ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53700494/