Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在puppeter上使用xpath查询获取元素中的子元素数量?_Node.js_Xpath_Puppeteer - Fatal编程技术网

Node.js 如何在puppeter上使用xpath查询获取元素中的子元素数量?

Node.js 如何在puppeter上使用xpath查询获取元素中的子元素数量?,node.js,xpath,puppeteer,Node.js,Xpath,Puppeteer,我需要获得页面中元素中的子元素数。$x(xpath)函数在Puppeter中,mad I未成功。在浏览器控制台中,我可以使用$x().children.length执行此操作。在具有节点的木偶演员中,什么是实现这一点的最佳方法?您可以在页面中使用element/JS handle API或纯Web API。evaluate()。这两种方式都是: const puppeter=require('puppeter'); (异步函数main(){ 试一试{ const browser=wait pup

我需要获得页面中元素中的子元素数。$x(xpath)函数在Puppeter中,mad I未成功。在浏览器控制台中,我可以使用$x().children.length执行此操作。在具有节点的木偶演员中,什么是实现这一点的最佳方法?

您可以在
页面中使用element/JS handle API或纯Web API。evaluate()
。这两种方式都是:

const puppeter=require('puppeter');
(异步函数main(){
试一试{
const browser=wait puppeter.launch();
const[page]=wait browser.pages();
等待页面。转到('https://example.org/');
const[element]=wait page.$x('//body/div');
const children=await元素.getProperty('children');
const length1=await(await children.getProperty('length')).jsonValue();
console.log(长度1);//3
const length2=等待页面。评估(()=>{
返回文档。评估(
'//body/div',document,null,XPathResult.FIRST\u ORDERED\u NODE\u类型
).singleNodeValue.children.length;
});
console.log(长度2);//3
等待浏览器关闭();
}捕捉(错误){
控制台错误(err);
}
})();

只需在页面内部使用相同的方法即可。评估得到我期望的结果有点不同。我成功地做到了与第一个解决方案类似的事情。但是你的方式更短,阅读起来更漂亮,谢谢