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 - 找到第一个可滚动的父级

javascript - 单例不适用于多个文件 Node J

javascript - 来自动态添加的输入字段的发布数据未发送

node.js - 在操纵p的按钮上如何处理新页面?

javascript - 异步方法总是返回未定义

javascript - JavaScript Cookie

javascript - 在PHP中显示Cookie

javascript - puppeteer 从<dl>结构获取元素

javascript - 单击具有特定样式的 iframe

node.js - Puppeteer 页脚仅显示在最后一页