Answer the question
In order to leave comments, you need to log in
How to fix page is not defined error?
Good day to all, please tell me how to fix the page is not defined error?
When running the script, node gives an error
(node:8260) UnhandledPromiseRejectionWarning: Error: Evaluation failed: ReferenceError: page is not defined
There is this code:
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);
}
});
})();
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question