Puppeteer UnhandledPromiseRejectionWarning: ошибка: узел либо не отображается, либо не является HTMLElement - PullRequest
0 голосов
/ 25 мая 2020

Я использую «puppeteer» для NodeJS для снятия скриншотов некоторых элементов dom на локальных веб-страницах. Кажется, можно сделать 3 снимка экрана, а затем сообщить:

UnhandledPromiseRejectionWarning: Ошибка: узел либо не виден, либо не HTMLElement

выше - это мой код, я не знать, зачем сообщать об этом, помощь будет принята с благодарностью.

const puppeteer = require("puppeteer");
const fs = require("fs");
const Q = require("q")

function delay(ms) {
  var deferred = Q.defer();
  setTimeout(deferred.resolve, ms);

  return deferred.promise;
}

const urls = [
  "http://127.0.0.1:5500/index.html",
  "http://127.0.0.1:5500/index-2.html",
  "http://127.0.0.1:5500/index-3.html",
  "http://127.0.0.1:5500/index-5.html",
];

(async () => {
  // Launch a headful browser so that we can see the page navigating.
  const browser = await puppeteer.launch({
    headless: true,
    args: ["--no-sandbox", "--disable-gpu"],
  });
  const page = await browser.newPage();
  await page.setViewport({
    width: 375,
    height: 812,
    isMobile: true,
  }); //Custom Width

  //start shortcut every page
  let counter = 0;
  for (url of urls) {
    await page.goto(url, {
      timeout: 0,
      waitUntil: "networkidle0",
    });
    await delay(100);
    let btnElements = await page.$$("button");

    // let btnElements = await page.document.querySelector('button');
    console.log(btnElements.length);

    for (btn of btnElements) {
      const btnData = await btn.screenshot({
        encoding: "binary",
        type: "jpeg",
        quality: 90,
      });
      let fn = "data/btn" + counter + ".jpg";
      console.log(fn)
      Q.nfcall(fs.writeFileSync, fn, btnData);
      counter++;

    }
  }

  await page.close();
  await browser.close();
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...