我使用这两种方法来获取 HTML 元素的文本。例如:
let elHandle = await page.$("#product");
let productName = await elHandle.evaluate(element => {
return element.textContent;
});
还有
let productName = await page.$eval("#product", element => {
return element.textContent;
});
在这两个示例中,我都将“pageFunction”作为参数传递给这两个方法。但是 puppeteer 中的页面函数是什么?
编辑: 我应该补充一下,文档中给出了以下段落,但我不明白它的含义:
pageFunction
编辑:拼写错误!
最佳答案
您的 Puppeteer 脚本正在 NodeJS 中运行。 NodeJS 启动浏览器并浏览您的脚本。如果您在脚本中使用 console.log('hello')
,它会使用 NodeJS 将其记录到您的终端。
页面函数是 Puppeteer(通过 NodeJS)转换为字符串、发送到浏览器,然后在 Chromium 实例内运行的函数。如果您在页面函数中使用 console.log('hello')
,它会将其记录到浏览器中的控制台。
基于您的示例
console.log('hello') // Displayed in terminal running your script.
page.$eval("#product", element => {
// We are now inside the browser and can use DOM APIs!
console.log('hello') // Displayed in browser's console
});
关于javascript - 在 puppeteer 中,使用 page.$eval() 和 page.evaluate() 方法时,术语 pageFunction 意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63973905/