当前位置: 首页 > 知识库问答 >
问题:

如何使用木偶师的页面。在forEach循环中单击?[副本]

慕宏博
2023-03-14

我想让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语句弄乱了页面

这样做的正确方法是什么?

共有1个答案

牛兴安
2023-03-14

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`)
  }
 类似资料:
  • 问题内容: 使用以下代码显示我的Twitter个人资料中的朋友列表。我想一次只加载一个特定的数字,例如20,然后在底部为第1-2-3-4-5页的页面提供分页链接(但是,除以限制) **更新**** 这项工作有效,只需要抵消从开始的输出即可。在想什么? 问题答案: 一个非常优雅的解决方案是使用:

  • 我正试图做一个项目的投资组合,也有一个小博客。我想为我的项目使用“页面”,为我的博客文章使用普通文章。我正在尝试循环页面,但不断出现错误。 这是我的代码: 我一直得到的错误是: 致命错误:未捕获错误:调用成员函数have_posts()在C:\xampp\htdocs\ivannikolov\wp-内容\主题\port18\index.php:31堆栈跟踪:#0 C:\xampp\htdocs\i

  • 本文向大家介绍如何在PowerShell foreach并行循环中使用PSCustomObject?,包括了如何在PowerShell foreach并行循环中使用PSCustomObject?的使用技巧和注意事项,需要的朋友参考一下 要在Foreach并行循环内使用PSCustomObject ,我们首先需要考虑如何在循环内使用变量。 因此,让我们看看是否可以在$out变量中存储或更改值。 示例

  • 问题内容: 在循环中使用/ 是否有任何问题?我试图遍历文件数组和每个文件的内容。 这段代码确实有效,但是这可能会出问题吗?我让某人告诉我,您不应该在这样的高阶函数中使用/ ,所以我只是想问一下这是否有问题。 问题答案: 确保代码确实有效,但是我很确定它不会执行您期望的功能。它只会触发多个异步调用,但此后函数会立即返回。 顺序阅读 如果要顺序读取文件, 则不能使用。只需使用现代循环即可,该循环将按预

  • 问题内容: 我正在尝试编译以下代码: 我在for行中看到一条错误消息: 该方法返回一个(但在这种情况下,返回的结构)。 是我为应用程序创建的枚举(在另一个类文件-中)。 当我在中创建具有相同结构的foreach循环时,我没有遇到此问题。 我究竟做错了什么? 问题答案: 一种更有效的方法: 如果有可能,请定义“ getData”,以便您不需要强制转换。

  • 我想把这个代码的答案四舍五入到小数点后两位。我尝试了很多方法,但没有一种对我有效。请帮忙!