【问题标题】:$$eval is returning undefined. In pupeteer js$$eval 返回未定义。在 puppeteer js 中
【发布时间】:2019-12-10 21:40:58
【问题描述】:

我目前正在尝试获取 html 文件的 img src,但遇到了问题。我不确定该怎么做。让我解释一下:

我在一个 html 页面中有几个这样的 div:

<div class="photo-tile photo-tile-small"><img class="photo-tile-image" src="https://photos.example.com/images/randomimage.jpg"></div>

我正在尝试获取所有页面的 src。例如这里是:https://photos.example.com/images/randomimage.jpg" 如果页面上有 10 个,我想要全部 10 个。

使用 puppeteer js 这是我的代码来尝试这样做: (并非全部只是相关部分):

  const getImgSrc = await page.$$eval('.photo-tile-image', img => img);
  console.log(getImgSrc);

这将返回“未定义”。我对此的理解(我确定我错了),是这里 $$.eval 正在评估这个名为“.photo-tile-image”的元素的每个实例,它会返回元素的属性,在这种情况下它将被称为img 从这里我希望它注销结果在console.log(getImgSrc)

通过这一点,我将如何获得img.src

【问题讨论】:

    标签: javascript node.js puppeteer


    【解决方案1】:

    您传递给$$eval 的函数的参数不是图像,而是图像数组。

    所以从那里,你可以这样做:

    const getImgSrc = await page.$$eval('.photo-tile-image', imgs => imgs.map(img => img.src));
    console.log(getImgSrc);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多