Кукловод пытается получить значение data-src в теге img - PullRequest
0 голосов
/ 19 февраля 2019

В настоящее время у меня есть следующий HTML:

Мне нужно получить ссылку data-src, которая там есть.Мой код в puppeteer js:

  await page.waitForSelector('#ldpPhotoGallery');
  const getImgSrc = await page.$$eval('#ldpPhotoGallery', imgs => imgs.map(img => {img.getAttribute('data-src')}));
  console.log(getImgSrc);

Здесь я жду идентификатор страницы, затем после загрузки он должен запустить оценку страницы.Я не уверен, правильно ли я это делаю.Из того, что я понимаю, я оцениваю идентификатор ldpPhotoGallery, тогда оттуда он возвращает содержимое.Оттуда я ищу getAttribute data-src, и он должен вернуть его нет?Файл console.log имеет значение [null].Я знаю, что данные есть.Что я делаю не так?

1 Ответ

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

Кажется, у вас просто есть опечатка в формате функции стрелки: .map(img => {img.getAttribute('data-src')}) заполнил бы весь массив undefined, так как функционирующее стрелкой тело в фигурных скобках без retutn неявно возвращает undefined.Затем undefined сериализуется как null, и вы получаете [null].Просто удалите фигурные скобки или добавьте явные retutn.

Кстати, вам не нужно page.$$eval() для селектора идентификатора, он возвращает массив только с одним элементом.page.$eval() может быть достаточно:

await page.waitForSelector('#ldpPhotoGallery');
const getImgSrc = await page.$eval('#ldpPhotoGallery', img => img.getAttribute('data-src'));
console.log(getImgSrc);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...