javascript - 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);
});
})();
解决方案
您可以在评估之前添加一个 waitForSelector
await page.waitForSelector('a.current');
推荐阅读
- javascript - 创建对象函数,为其调用者对象生成属性
- reactjs - 错误:动态 SSG 页面需要 getStaticPaths,而“xxx”缺少 getStaticPaths。NextJS
- excel - PowerQuery 导出
- c++ - 添加向量的部分
- c++ - C++:模板元编程中的条件
- python - 对于 Heroku 上的烧瓶应用程序来说,Slug 太大了
- javascript - 如何仅在数据之前加载微调器
- performance - 如何向量化这个五点差代码以快速计算矩阵的导数?
- c++ - cout 浮动,没有尾随零,并且后面只有 3 位数字
- racket - 为什么在 Racket 中读取位图这么慢?