javascript - 未捕获( promise )错误: Passed function is not well-serializable

标签 javascript electron puppeteer

我正在尝试在Electron中使用Pupppeteer进行一些自动化。我使用简单的命令node test.js测试了以下代码,没有任何错误:

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://www.facebook.com/');
    await page.waitFor(2000);
    await page.click('button[type="submit"]');
    await page.waitFor(2000);
    await page.screenshot({ path: 'example.png' });
    await browser.close();
  })();
但是当我在Electron中运行完全相同的代码时,出现以下错误,指出await page.click('button[type="submit"]');出现错误
Uncaught (in promise) Error: Passed function is not well-serializable!
at ExecutionContext._evaluateInternal (ExecutionContext.ts:247)
at ExecutionContext.evaluateHandle (ExecutionContext.ts:191)
at ElementHandle.evaluateHandle (JSHandle.ts:183)
at Object.internalHandler.queryOne (QueryHandler.ts:68)
at ElementHandle.$ (JSHandle.ts:778)
at DOMWorld.$ (DOMWorld.ts:171)
at async DOMWorld.click (DOMWorld.ts:434)
at async file:/Users/usr/Desktop/aa/renderer.js:17
我该如何解决?

最佳答案

尝试传递一个字符串来求值,而不是传递一个函数(用反引号引起来)。
您也可以尝试使用eval('your-code-as-string');进行 package 。

关于javascript - 未捕获( promise )错误: Passed function is not well-serializable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66293772/

相关文章:

javascript - 为什么在主进程和渲染进程中调用的 window.maximize() 与 macos 上的动画不同?

带有私有(private) GitHub 存储库的 Electron 自动更新器?

javascript - 使用 Javascript 从本地文件夹读取 CSV 文件

javascript - Puppeteer - 删除由 hideFunction 公开的函数?

javascript - 使叠加淡入和淡出速度变慢

java - Rhino:如何将字符串从 Java 返回到 Javascript?

Javascript原型(prototype)函数失败

javascript - 即使 promise 为 200,也无法从刷新 token 生成新的访问 token

google-chrome-devtools - puppeteer 中的旋转视口(viewport)

html - 如何使用 Puppeteer 在没有 href 链接的情况下获取 <a href> 标签内的文本