首页 文章

使用puppeteer如何获取节点的所有子节点?

提问于
浏览
0

我找不到在puppeteer中迭代给定节点的子节点的方法 . 我事先不知道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

如果你不知道木偶操作中的html结构,有没有办法让节点的子节点?

1 回答

  • 0

    我在这里要做的是使用Puppeteer的 evaluate 方法将节点的子元素返回到脚本,如下所示:

    const nodeChildren = await page.$eval(cssSelector, (uiElement) => {
      return uiElement.children;
    });
    console.log(nodeChildren); // Outputs the array of the nodes children
    

    希望这可以帮助!

相关问题