Javascript 迭代Nodejs中的元素

Javascript 迭代Nodejs中的元素,javascript,jquery,node.js,puppeteer,Javascript,Jquery,Node.js,Puppeteer,我有一个网页,我想把鼠标悬停在所有锚定标签上,并计算出该标签的样式。我编写的这个函数似乎不起作用,因为它提供了锚的原始样式,而不是悬停样式。 请帮忙 let data = await page.evaluate(() => { let elements = document.getElementsByTagName('a'); properties = [] for (var element of elements){ element.focus()

我有一个网页,我想把鼠标悬停在所有锚定标签上,并计算出该标签的样式。我编写的这个函数似乎不起作用,因为它提供了锚的原始样式,而不是悬停样式。 请帮忙

let data = await page.evaluate(() => {
    let elements = document.getElementsByTagName('a');
    properties = []
    for (var element of elements){
        element.focus();
        properties.push(JSON.parse(JSON.stringify(window.getComputedStyle(element, null)["backgroundColor"])));
    }
    return properties;
});
尝试document.getComputedStyle(元素“:hover”)

首先,您应该从
document.getElementsByTagName
到普通数组

const elements = [...document.getElementsByTagName('textarea')];
接下来要获取元素属性,请使用以下语法:

window.getComputedStyle(element).getPropertyValue("background-color")
最后,这是一个完全有效的示例:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://css-tricks.com/almanac/selectors/f/focus/');


  const data = await page.evaluate(() => {
    const elements = document.getElementsByTagName('textarea');

    return [...elements].map(element => {
      element.focus();
      return window.getComputedStyle(element).getPropertyValue("background-color");
    });
  });

  console.log(data);

  await browser.close();
})();
您可以使用获取
textarea
元素的数组

然后,您可以使用鼠标悬停在每个元素上,然后获取计算的背景色,以推送到
数据
数组:

const elements = await page.$$( 'textarea' );
const data = [];

for ( let i = 0; i < elements.length; i++ )
{
    await elements[i].hover();

    data.push( await page.evaluate( element => window.getComputedStyle( element ).backgroundColor, elements[i] ) );
}

console.log( data );
const elements=wait page.$$(“textarea”);
常量数据=[];
for(设i=0;iwindow.getComputedStyle(element.backgroundColor,elements[i]);
}
控制台日志(数据);

尝试
Array.from(…,(element)=>(document.getComputedStyle(element,null)[“backgroundColor”])
请详细说明。这种方法不起作用,您需要首先向每个元素添加一个侦听器,然后调用每个
元素的焦点。inputValue[i]。addEventListener('focus',yourListenerHere,false)
然后调用
element.focus()
如何添加侦听器?