$$ eval возвращается неопределенным.В кукловод JS - PullRequest
0 голосов
/ 15 февраля 2019

Я сейчас пытаюсь получить img src html-файла, и у меня возникла проблема.Я не совсем уверен, как это сделать.Позвольте мне объяснить:

У меня есть несколько таких div'ов на html-странице:

<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?

1 Ответ

0 голосов
/ 15 февраля 2019

Аргумент функции, которую вы передаете $$eval, это не изображение, а массив изображений.

Итак, вы можете сделать:

const getImgSrc = await page.$$eval('.photo-tile-image', imgs => imgs.map(img => img.src));
console.log(getImgSrc);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...