javascript - 导入的函数在 puppeteer 中不起作用
问题描述
从不同的文件导入长 JS 函数:
let startTheShow = require('./scraper.js');
然后尝试在页面上使用该功能。
await page.evaluate(() => {
startTheShow('info','hi','hi');
})
预期的结果是什么? 导入的函数会在页面上运行
相反会发生什么? “未定义 startTheShow”
将原始脚本放在评估中而不是将模块导入索引,可以解决问题。不幸的是,这个选项在索引文件中造成了很多混乱。知道为什么我不能使用这个导入的函数吗?
解决方案
从文档:
pageFunction
<function|string>
要在页面上下文中评估的函数
evaluate(() => startTheShow())
意味着页面上下文中应该有一个startTheShow
函数,我假设没有,页面上下文不知道是什么startTheShow
。您应该传递 的字符串版本./scraper.js
或startTheShow
要评估的函数。
从文档传递字符串的示例:
console.log(await page.evaluate('1 + 2')); // prints "3"
推荐阅读
- azure - 有什么方法可以在 Azure APIM 中实现 WS-security 令牌
- r - 使用雪暴露来自节点的警告
- java - 如何在 Spring JPA 保存方法中添加用户定义注释
- android - 新的 gradle 插件版本(4.1.0):不再返回任何资源字段
- regex - 使用 sed 跳过一行的一部分
- javascript - PIXI 图形“内存不足”
- html - 有没有办法让 3 个 div 并排并用 Bootstrap 4 做出响应?
- node.js - npm 错误!对 http://registry.npmjs.org/express 的网络请求失败,原因:连接 ETIMEDOUT
- javascript - ArcGIS API for JavaScript:从动态填充的下拉列表中查询
- django - 如何覆盖 Django 管理员 delete_selected_confirmation.html