кукловод: Получение HTML из NodeList? - PullRequest
2 голосов
/ 09 мая 2020

Я получаю список из 30 элементов из кода:

const boxes = await page.evaluate(() => {
    return document.querySelectorAll("DIV.a-row.dealContainer.dealTile")
})

console.log(boxes);

The result

{ '0': {},
  '1': {},
  '2': {},
  ....
  '28': {},
  '29': {} }

Мне нужно увидеть html элементов.

Но каждое свойство, которое я пробовал для boxes, просто undefined. Я пробовал length, innerHTML, 'innerText` и некоторые другие.

Я уверен, что в коробке действительно что-то есть, потому что скриншот кукловода показывает содержимое, прежде чем я начну «просматривать» содержимое страницы

Что я делаю не так?

1 Ответ

3 голосов
/ 09 мая 2020

Есть несколько способов сделать это:

  • Используйте page.$$eval для выполнения селектора и возврата результата за один шаг.
  • Используйте page.evaluate, чтобы получить атрибуты после запроса элементов.

Пример кода для page.$$eval

const htmls = await page.$$eval('selector', el => el.innerHTML);

Пример кода для page.evaluate

const singleBox = boxes[0];
const html = await page.evaluate(el => el.innerHTML, singleBox);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...