Javascript 用于(...的...)的 Puppeteer 代码

Javascript code to Puppeteer for(...of...)

我有以下 javascript 代码,我想在 puppeteer 中实现它,以执行类似的操作:

   await page.click(myDivs[0])

 const myDivs = [];
     for (const div of page.querySelectorAll("div.b-swatch-value-wrapper")) {
        if (div.querySelector("span.b-swatch-value--orderable") !== null) {
          myDivs.push(div.b-swatch-value-wrapper);
            }
        }

我可能没解释清楚。 我想得到每个 div,其中包含 class "b-swatch-value-wrapper" + 有一个包含 class“b-swatch-value--orderable”的跨度子项。 (因为有些包含它,有些则没有)。

像这样显然行不通,但我该怎么做呢?提前谢谢你:)

page 是 Node.js 上下文中的 puppeteer 变量,而 querySelectorAllquerySelectorAll 是浏览器上下文中文档和元素的方法。这些上下文不能混合。一些可序列化的数据可以通过 page.evaluate() 和类似的函数在它们之间传输。您可以通过这种方式获得元素处理程序数组(但元素处理程序有自己的 API,请参阅 documentation 中的详细信息)。

const myDivs = [];
for (const div of await page.$$("div.b-swatch-value-wrapper")) {
  if (await div.$("span.b-swatch-value--orderable") !== null) {
    myDivs.push(div);
  }
}