javascript - 在 puppeteer 中,使用 page.$eval() 和 page.evaluate() 方法时,术语 pageFunction 意味着什么

标签 javascript puppeteer

我使用这两种方法来获取 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/

相关文章:

javascript - 在实际 API 上使用 puppeteer

node.js - 错误 : Could not find browser revision 756035. 运行 "npm install"

javascript - 通过 puppeteer 单击 "load more"按钮

javascript - 将 proptypes 添加到未命名的匿名默认导出函数 - e.i "export default () =>{}"

javascript - 我可以多次调用 fbq ('init' ) 以使用新的像素功能吗?

javascript - 如何从 PostgreSQL 中提取数据,处理,然后存储在 javascript 中?

node.js - headless 浏览器和 Curl 哪个性能更快?

javascript - 使用 jQuery,如何仅保留某些 HTML 的第一句,并保留格式?

JavaScript - 从打开的窗口捕获提交值

javascript - 使用选择下拉列表调用 javascript 函数