Как получить все шрифты со стилем, используя кукловод - PullRequest
0 голосов
/ 23 апреля 2019

Я использую Puppeteer, чтобы получить список шрифтов для данной веб-страницы.

Попробовал следующий фрагмент, чтобы получить все шрифты для данной страницы.

const selector = 'html';
const getFontProperty = async (page) => {
  const font = await page.evaluate((selector) => {
    let elements = Array.from(document.querySelectorAll(selector));
    console.log(elements)
    let links = elements.map(element => {
      console.log(element)
      console.log(getComputedStyle(element).font)
    });
  }, selector);
  return font;
}

Однако elements выглядит как неопределенное.

[ссылка: страница кукловода.

1 Ответ

0 голосов
/ 23 апреля 2019

Это происходит потому, что вы на самом деле не возвращаете определения шрифтов, а console.log. Если вы не используете краткую форму функции стрелки, вам нужно явно вернуть значение:

let links = elements.map(element => {
  console.log(element)
  return getComputedStyle(element).font
});

В противном случае вы можете просто написать:

let links = elems.map(element => getComputedStyle(element).font);

Обновление: Вы также должны вернуть данные, которые вы ищете page.evaluate:

const font = await page.evaluate(selector => {

    let elements = Array.from(document.querySelectorAll(selector));
    let links = elems.map(element => getComputedStyle(element).font);

    return links; // <-- return data from page.evaluate

}, selector);
...