首页 > 解决方案 > page.evaluate 不记录返回值

问题描述

我见过其他具有相同标题的问题,但这无济于事。我试图记录从page.evaluate函数返回的值,但它既没有记录在浏览器中,也没有记录在终端中。这是我的代码

const pptr = require("puppeteer");

(async () => {
  const { config, baseURL } = require("./config");

    await pptr.launch(config).then(async browser => {
    const page = await browser.newPage();
    await page.goto(baseURL, { waitUntil: "load" });

    await page.setDefaultTimeout(0);
    await page.setDefaultNavigationTimeout(0);

    await page.click("#pgntn > div.Pagination > ul > li:nth-child(8) > a");
    await page.waitForNavigation({ waitUntil: "load" });

    let pageNumber = await page.evaluate(() => {
      return document.querySelector("a.current").textContent;
    });

    console.log(pageNumber);
  });
})();

标签: javascriptnode.jspuppeteer

解决方案


您可以在评估之前添加一个 waitForSelector

await page.waitForSelector('a.current');

推荐阅读