page.evaluate 似乎没有发生

page.evaluate does not seem to happen

根据主题,我的 page.evaluate 似乎 运行。

crawler.crawlUrl = async function(url) {
    if (!url) {
        return;
    }
    const page = await crawler.browser.newPage();
    await page.goto(url);
    console.log('got to here');
    await page.evaluate(() => {
        const links2 = document.querySelectorAll('*');
        console.log('what');
        console.log(links2);
        return Promise.resolve(true);

    }).catch(function(er){
        console.log(er);
    });
}

crawler.crawlUrl('https://www.sundhed.dk');

当 运行 执行此操作时,我以 'Got to here' 语句记录到终端,但没有其他任何反应。它永远存在。

尝试等待一些东西回来!我的经验法则是每次我请求一个新资源(单击一个按钮,转到 url)我 总是 执行 waitForXXX

await page.goto(url);
await page.waitForSelector("h1");

您可能需要用页面上确实存在的内容替换 h1。

View list of puppeteer selectors

我创建了一个适合我的脚本:-

尝试等待一些东西回来!我的经验法则是每次我请求一个新资源(单击一个按钮,转到 url)我 总是 执行 waitForXXX

await page.goto(url);
await page.waitForSelector("h1");

您可能需要用页面上确实存在的内容替换 h1。

View list of puppeteer selectors

我创建了一个适合我的脚本:-

'use strict'; 

const puppeteer = require('puppeteer'); 

async function run() {

    const browser = await puppeteer.launch( {
        headless: false //true
    }); 

    const page = await browser.newPage(); 
    await page.setViewport({ width:1024, height:800});
    await page.goto('https://www.sundhed.dk');
    await page.waitForSelector('h1');

    const innerText = await page.evaluate(() => {
        return document.querySelector("H1").innerText;
    });

    console.log(innerText);

    await browser.close(); 
}; 

run();