Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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
Javascript 使用Puppeter获取HTML属性的值_Javascript_Node.js_Ecmascript 6_Puppeteer - Fatal编程技术网

Javascript 使用Puppeter获取HTML属性的值

Javascript 使用Puppeter获取HTML属性的值,javascript,node.js,ecmascript-6,puppeteer,Javascript,Node.js,Ecmascript 6,Puppeteer,使用Puppeter,我选择了一些HTML元素,使用: await page.$$( 'span.styleNumber' ); 我可以使用以下方法获取元素的文本: console.log( await ( await styleNumber.getProperty( 'innerText' ) ).jsonValue() ); 如何计算元素的数据颜色属性的值 这是我的剧本: HTML 上述代码将打印: SG1000 SG2000 SG3000 如何获取数据颜色属性的值?例如: conso

使用Puppeter,我选择了一些HTML元素,使用:

await page.$$( 'span.styleNumber' );
我可以使用以下方法获取元素的文本:

console.log( await ( await styleNumber.getProperty( 'innerText' ) ).jsonValue() );
如何计算元素的数据颜色属性的值

这是我的剧本:

HTML 上述代码将打印:

SG1000
SG2000
SG3000
如何获取数据颜色属性的值?例如:

console.log( await ( await styleNumber.getAttribute( 'data-Color' ) ) ); // Blue

您可以使用
evaluate
方法获取属性值

await page.evaluate('document.querySelector("span.styleNumber").getAttribute("data-Color")')

第二条路
$$eval
方法也可以使用。也可以从变量中称为数组的属性

const attr = await page.$$eval("span.styleNumber", el => el.map(x => x.getAttribute("data-Color")));
输出将是

["Blue", "Green", "Red"]

你的解决方案
const attr = await page.$$eval("span.styleNumber", el => el.map(x => x.getAttribute("data-Color")));
["Blue", "Green", "Red"]
const styleNumbers = await page.$$("span.styleNumber");

for( let styleNumber of styleNumbers ) {
    const attr = await page.evaluate(el => el.getAttribute("data-Color"), styleNumber);
}