javascript - 为什么我的 Puppeteer .innerText 代码什么也不返回?
问题描述
所以我刚开始学习 puppeteer.js,发生的事情是我的代码运行它没有错误,但它没有向控制台显示任何内容。(我使用 Node.js 进行调试)唯一显示某些内容的时间是当我将异步函数放入另一个函数中时,即使它返回未定义。我想知道为什么会这样以及如何解决它。
这是我的代码:
(async () =>{
let movieUrl = 'https://www.imdb.com/title/tt0111161/?ref_=nav_sr_1'
let browser = await puppeteer.launch();
let page = await browser.newPage();
await page.goto(movieUrl, {waitUntil: 'networkidle2'})
let data = await page.evaluate(() => {
let title = document.querySelector('div[class="title_wrapper"] > h1').innerText;
let rating = document.querySelector('span[itemprop="ratingValue"]').innerText;
let ratingCount = document.querySelector('span[itemprop="ratingCount"]').innerText;
return{title, rating, ratingCount};
})
console.log(data);
debugger;
await browser.close();
})
解决方案
这是一个未命名的异步函数:
async () => {
// the function code
}
如果你想立即运行它,你需要调用它。您可以通过将其括在括号中来做到这一点:
(async () => {
// the function code
})()
这称为 IIFE,即立即调用函数表达式。您声明一个函数并立即运行它。
请参阅这些文章以了解它:
推荐阅读
- python-3.x - 如何在Python中计算列的段中的特定数字
- apache-spark - org.apache.spark.SparkException:无法执行用户定义的函数(如何找到有问题的 udf)
- machine-learning - 机器学习中的多项式和多项式回归有什么区别?
- c++ - 如何在 C++ 中使用 <<= 运算符格式化链表
- amazon-web-services - 如何访问 SNS HTTPS 订阅端点中的消息属性
- javascript - api调用多次时有时会取消AJAX请求
- javascript - 节点中的sqlite3 uri语法
- excel - 使用公式从具有不同工作簿名称的不同工作表中获取值
- swift - 从 UIButton 更改后的 UIBarButtonItem 错误
- ember.js - Route 上的数据未从 API 重新加载/重新获取