javascript - 如何在 forEach 循环中使用 Puppeteer 的 page.click ?

标签 javascript node.js puppeteer

我想做Puppeteer根据名为 tabs 的数组中的项目数单击一些选项卡:

;(async () => {
  const browser = await puppeteer.launch({
    headless: true
  })   

  const page = await browser.newPage()
  await page.goto(`https://www.example.com`)

  const tabs = ['tab1', 'tab2', 'tab3']

  tabs.forEach((tab, index) => {
    await page.click(`.postab-container li:nth-of-type(${ index + 1 }) a`)
  })
})()

但我收到此错误:

await page.click(`.postab-container li:nth-of-type(${ index + 1 }) a`)
      ^^^^

SyntaxError: Unexpected identifier

看起来像forEach声明搞砸了page .

正确的做法是什么?

最佳答案

forEach 内部的函数不是 async 函数,因此您不能使用 await,但即使您将其更改为 async使用函数时,您不会得到预期的结果(forEach 将立即生成所有请求,而不是 await 每个异步函数)。请改用 for 循环。

  for(let index =0;index<tabs.length;++index){
    let tab = tabs[index];
    await page.click(`.postab-container li:nth-of-type(${ index + 1 }) a`)
  }

关于javascript - 如何在 forEach 循环中使用 Puppeteer 的 page.click ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59769686/

相关文章:

javascript - 注册后如何使 react 应用程序重定向到登录页面?

javascript - 如何制作点击计数器(对应jQuery 2.0.2/2.0.1)

javascript - 如何在 JavaScript 代码中获取 JavaScript 对象?

node.js - SecretOrPrivateKey 必须有一个值

mongodb - 使用 node-mongodb-native 时如何保持 DRY

使用正则表达式的 Html 选择器

javascript - Puppeteer - 如何选择带有类名的 div 内的 A 标签

javascript - 使用 `find( )` 并选择父元素

javascript - 如何在 React Navigation 5 身份验证流程中实现 firebase 身份验证?

mongodb - 即时定义 Mongoose Schema