木偶评估不执行所需的功能

时间:2019-08-15 21:23:59

标签: node.js puppeteer

我有一个用node.js和puppeteer编写的小应用程序。我试图将一个功能从另一个文件导入到我的evaluate回调中,但是该函数从不触发并导致evaluate失败。这是一个非常简单的示例,也许有人可以看到我是否在这里做一些愚蠢的事情。

从文件A调用评估

product = await page.evaluate( source.getProductInformation )

source.getProductInformation是在文件B中定义的,当我从文件B中调用所需的函数时,此函数将失败

const priceSavePercent = calculateSavePercentage(priceWasNum, priceCurrentNum)

calculateSavePercentage仅在文件B const { calculateSavePercentage } = require('../modules/helpers')顶部

我尝试在所有地方控制台日志,并且没有任何输出到控制台,并且我的评估回调不返回其假定的对象。我想是否需要对文件B依赖项的其他方式?我有一个npm包,并且文件B中也需要一个常量,两者都不会引起问题。任何帮助是极大的赞赏。让我知道您是否需要更多信息。

1 个答案:

答案 0 :(得分:0)

问题是,当您进行评估时,您正在访问的是您正在抓取JavaScript的页面,而不是您自己的页面,因此未定义函数,您可以尝试类似的方法。

await page.evaluate((source) => {
    source.getProductInformation(); 
}, source);