@EvgenyKabakov

Как исправить ошибку page is not defined?

Всем доброго времени суток, подскажите, пожалуйста, как исправить ошибку page is not defined?
При запуске скрипта node выдает ошибку
(node:8260) UnhandledPromiseRejectionWarning: Error: Evaluation failed: ReferenceError: page is not defined

Имеется такой код:
const puppeteer = require('puppeteer');

(async() => {
  //  Запуск chrome
  const browser = await puppeteer.launch({
    args: ['--no-sandbox','--window-size=1500,920'], headless: false }
  );
  // Открытие новой страницы
  var page = await browser.newPage();

const content = await page.evaluate(() => {
    
    // получаем и проверяем все этажи
    var floors = document.querySelectorAll('.item.collection-item.valign-wrapper');
    // console.log('Список этажей: ' + floors);

    var resultArr = [...floors].reduce((acc, el) => {
      // Находим span с номером этажа
      var floorNumBlock = el.querySelector('span.valign');

      // Получаем текстовое содержание, преобразовываем это к числу, проверяем
      var floorNum = Number(floorNumBlock.textContent);

      // Находим все ссылки внутри этажа, проверяем
      var floorLinks = el.getElementsByTagName('a');

      // Получаем ключи объекта с ссылками
      var linkItems = Object.keys(floorLinks);

      // Получаем первый элемент, проверяем
      var linkItem = floorLinks[linkItems[0]]; 
      //console.log('Первый элемент этажа: ' + linkItem);

      // Получаем атрибут href элемента
      var linkItemHref = 'https://******.ru/admin/module.php/'+linkItem.getAttribute('href');
      acc.push(
        {
          floorNums: floorNum,
          floorLink: linkItemHref
        }
      )
      return acc
    }, []);

    console.log('Массив этажей собран');

    console.log('----Обработка массива этажей----');
    const houseFloorSelected = 4;
    resultArr.forEach(function(item, resultArr) {

      let itemFloorNumber = item.floorNums;
      let itemFloorLink = item.floorLink;

      console.log('Номер этажа и тип: ' + itemFloorNumber + ' ' + typeof(itemFloorNumber));
      console.log('Ссылка этажа и тип: ' + itemFloorLink + ' ' + typeof(itemFloorLink));

      console.log(houseFloorSelected);

      if(itemFloorNumber === houseFloorSelected) {
        console.log('test');
        page.goto(itemFloorLink);
      }
    });
})();
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
kocherman
@kocherman
есть же толковый цикл for..of
for ( let item of resultArr ){
  //...
}

или
for ( let [index,item] of [...resultArr].entries() ){
  //...
}

откуда мода на этот forEach()??
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы