8

如何使用 playwright 获取页面上的所有图像?我只能ElementHandle使用以下代码获得一个 ( ),但不能获得一个集合。

const { chromium } = require("playwright");

class Parser {
  async parse(url) {
    const browser = await chromium.launch();
    const page = await browser.newPage();
    await page.goto(url);
    await page.waitFor("img");
    // TODO: get somehow collection of elements
    return await page.$("img");
  }
}

module.exports = Parser;

在遥远的另一个模块的某个地方:

const Parser = require("./path/to/dir/Parser.js");
const parser = new Parser();

parser
    .parse(body.url)
    .then(elemHandle => {
      // here I get only one ElementHandle object, but suppose to get an array or collection
    })
    .catch(err => {
      throw new Error(err);
    });

节点 v.12.16.1

4

3 回答 3

15

我已经找到了答案。需要使用page.$$(selector)而不是page.$(selector)抢喜欢document.querySelectorAll(selector)

于 2020-04-27T08:02:05.587 回答
5

如接受的答案中所述,您可以使用await page.$$(selector). 这是页面的链接。$$官方文档

您也可以使用以下代码。

const result = await page.evaluate(selector => document.querySelectorAll(selector) , selector);

这是页面的链接。评估官方文档

于 2021-01-20T08:19:52.930 回答
5
  • for playwright use: await page.$$(selector);
于 2020-09-30T09:12:15.617 回答