На странице кукловода не найдено текста. - PullRequest
1 голос
/ 17 марта 2020

Я пытаюсь получить "document.querySelector (". Navigator__results "). ChildNodes [0]" для моего результата переменной

const result = await page.evaluate( async () => {
    const a = await document.querySelector(".navigator__results").childNodes[0];
    console.log(a);
    return a
});
console.log(result);

console.log (a) в браузере работает. Но console.log (результат) не

Есть идеи, как решить эту проблему?

Попытка отложить ее, как показано ниже, но безуспешно:

     await page.waitFor(10000);
     const result = await page.evaluate( async () => {
        function sleep(ms) {
            return new Promise(resolve => setTimeout(resolve, ms));
        }
        await sleep(8000);
        console.log(document.querySelector(".navigator__results").childNodes[0]);
        const a = await document.querySelector(".navigator__results").childNodes[0];
        console.log(a);
        return a;

     });
     console.log(result);

1 Ответ

1 голос
/ 17 марта 2020

document.querySelector(".navigator__results").childNodes[0] возвращает HTML элемент. Вы можете войти в консоль браузера, но не можете получить ее через page.evaluate(): page.evaluate() может передавать только сериализуемые данные (грубо говоря - данные JSON могут обрабатывать) и HTML элемент не может быть сериализован, поэтому возвращается undefined.

Кроме того, вам не нужно await для document.querySelector():)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...