@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
  • Вопрос задан
  • 210 просмотров
Решения вопроса 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);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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