Как я могу сделать слом интернет через кукловода - PullRequest
0 голосов
/ 06 февраля 2020

Если я go до https://investor.vanguard.com/mutual-funds/profile/VMMXX и выполню document.querySelector("[data-ng-if='productSummaryTitle']").innerText с консоли, я получаю то, что ожидаю: Product summary.

Но когда я пытаюсь сделать то же самое с puppeteer, я получаю UnhandledPromiseRejectionWarning: Error: Evaluation failed: TypeError: Cannot read property 'innerText' of null at __puppeteer_evaluation_script__:3:83. Чего мне не хватает?

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({ headless: false })
    const page = await browser.newPage()
    await page.goto('https://investor.vanguard.com/mutual-funds/profile/VMMXX')

    const result = await page.evaluate(() => {
        let myText = document.querySelector("[data-ng-if='productSummaryTitle']").innerText
        return {
            myText
        }
    })

    console.log(result)

    browser.close()
})()

1 Ответ

0 голосов
/ 06 февраля 2020

Сначала вы можете подождать этот селектор

const element = await page.waitForSelector('[data-ng-if='productSummaryTitle']');
const text = await element.evaluate(el => el.innerText);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...