Я хочу получить строку с определенным именем класса, скажем, 'CL1'.
Это то, что используется, и это работает: (мы внутри функции asycn)
var counter = await page.evaluate(() => {
return document.querySelector('.CL1').innerText;
});
Теперь, через несколько месяцев, когда я пытаюсь запустить код, я получаю эту ошибку:
Error: Evaluation failed: TypeError: Cannot read property 'innerText' of null
Я провел некоторую отладку с некоторыми console.log()
до и после предыдущего фрагмента кодаи обнаружил, что это виновник.
Я посмотрел код веб-страницы, и конкретный класс находится внутри.
Но я обнаружил еще два класса с тем же именем.
Все три из них вложены глубоко во многие классы.
Итак, как правильно выбрать тот, который я хочу, учитывая, что я знаю иерархию классов для интересующего меня?
РЕДАКТИРОВАТЬ: Поскольку существует три имени класса с одним и тем же именем, и я хочу извлечь информацию из первого, могу ли я использовать запись массива в querySelector () для доступа к информации из первого?
EDIT2: я запускаю это:
return document.querySelector('.CL1').length;
, и я получил
Error: Evaluation failed: TypeError: Cannot read property 'length' of null
Это становится еще более запутанным ...
РЕДАКТИРОВАТЬ 3: Я пишу предложение г-на Абу Тахера, и я увидел, что предоставленный им фрагмент кодане вернуть неопределенное.Это означает, что селектор виден моему коду.
Затем я запускаю этот фрагмент кода:
var counter = await page.evaluate(() => {
return document.querySelector('#react-root > section > main > div > header > section > ul > li:nth-child(1) > a > span').innerText;
});
И я получил ту же ошибку:
Error: Evaluation failed: TypeError: Cannot read property 'innerText' of null