Документация на page. $ (Селектор) говорит, что возвращает обещание, содержащее ElementHandle.
Но документации по ElementHandle немного не хватает.
Он говорит, что он «представляет элемент DOM», но что это действительно означает? И если он представляет DOM, почему нельзя проверить содержимое ElementHandle?
В нем также говорится: «предотвращает сборку мусора элементом DOM, если дескриптор не расположен». Зачем элементу DOM собирать мусор, если браузер все еще находится на странице?
Это произошло потому, что я думал, что будет просто взять текст из элемента на странице, поэтому я попытался,
const text = await page.$('#text').textContent;
, который возвратил undefined
. Итак, я попытался,
const text = await page.$('#text').textContent();
, который выдал ошибку.
Оказывается, правильный путь
const text = await page.evaluate(() => document.querySelector('#text').textContent);