学习Javascript(木偶演员)

学习Javascript(木偶演员),javascript,puppeteer,Javascript,Puppeteer,我正在尝试学习在web上使用javascript和Puppeter处理一些请求 所以我最终从一个随机网站上得到了标签a的值 但我不知道如何将这段代码放在“for”中,以获得10个值(10个标签一个序列) 这就是我如何获得价值(其工作原理): 我试图如何处理for(不起作用“ReferenceError:i未定义”): 您需要在页面中循环。评估(不同的上下文),即使如此,您也可以更轻松地使用: 我明白你的问题了 您正在使用不带异步函数的等待请求 请参阅本文档中的更多详细信息: 在控制台记录变量“

我正在尝试学习在web上使用javascript和Puppeter处理一些请求

所以我最终从一个随机网站上得到了标签a的值

但我不知道如何将这段代码放在“for”中,以获得10个值(10个标签一个序列)

这就是我如何获得价值(其工作原理):

我试图如何处理for(不起作用“ReferenceError:i未定义”):

您需要在
页面中循环。评估
(不同的上下文),即使如此,您也可以更轻松地使用:


我明白你的问题了

您正在使用不带异步函数的等待请求

请参阅本文档中的更多详细信息:

在控制台记录变量“resultado”的情况下,等待尚未解决

const resultado = await page.evaluate(() => {
      return document.querySelectorAll('.ui.divided.list > a')[i].textContent;
    });
    console.log(`O valor é ${resultado}`);

实现一个执行该调用的异步函数可能会解决您的问题

谢谢,它现在可以工作了。我可以肯定的是,搜索更多关于“map”的信息。现在是完美的=>返回Array.from(elements).slice(0,9).map((el)=>el.textContent);它在一个异步函数中,但现在可以与AKX post一起使用。谢谢
for (var i = 0; i < 9; i++) {
    const resultado = await page.evaluate(() => {
      return document.querySelectorAll('.ui.divided.list > a')[i].textContent;
    });
    console.log(`O valor é ${resultado}`);
  }
const resultado = await page.evaluate(() => {
      return document.querySelectorAll('.ui.divided.list > a').textContent;
    });
    console.log(`O valor é ${resultado[0]}`);
const resultado0 = await page.evaluate(() => {
  // Get the elements as a DOM node list
  const elements = document.querySelectorAll(".ui.divided.list > a");
  // Convert to an array we can map over, then map over to get the text content.
  return Array.from(elements).map((el) => el.textContent);
});
console.log(`O valor é ${resultado0}`);
const resultado = await page.evaluate(() => {
      return document.querySelectorAll('.ui.divided.list > a')[i].textContent;
    });
    console.log(`O valor é ${resultado}`);