Задать вопрос
@r_e_n_y

Почему функция не видит переменную?

Снизу часть кода, который должен парсить сообщения с телеграмм канала, но он почему-то не видит переменную i,
for(let i = 2; i<=19; i++) {
        let arr = await page.evaluate(() => {
            let text = document.querySelector(`body > main > div > section > div:nth-child(${i})`).innerText
            return text
        })
        console.log(arr)
    }

Вот ошибка:
Error [ReferenceError]: i is not defined
  • Вопрос задан
  • 227 просмотров
Подписаться 1 Простой 6 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Решения вопроса 1
@0x0f80
Проблема в том, что переменная i из цикла for не видна внутри page.evaluate(). Чтобы это исправить, передайте i как аргумент в page.evaluate(), например:
for(let i = 2; i <= 19; i++) {
    let arr = await page.evaluate((index) => {
        let text = document.querySelector(`body > main > div > section > div:nth-child(${index})`).innerText;
        return text;
    }, i); 
    console.log(arr);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы