【问题标题】:Puppeteer script suddenly stopped working after upgrading Puppeteer升级 Puppeteer 后 Puppeteer 脚本突然停止工作
【发布时间】:2018-11-15 19:36:03
【问题描述】:

我运行了一个 puppeteer 脚本来重新启动我的调制解调器。我猜它已经工作了大约一年,没有问题。 5天前它停止工作。我正在研究它,并意识到我遇到了运行它时没有遇到的错误,并且脚本失败了。问题是我没有改变任何东西。据我所知,HTML 也没有改变,但它失败了。所以我想知道 Chromium 或 puppeteer 中是否存在错误,或者它是否以不同的方式处理事情?

这是一个带有https://codepen.io/michaelbierman/pen/qQjdYR的codepen

  1. HTML 页面
  2. 傀儡脚本

错误

ERROR OUTPUT

2018 年 11 月 15 日星期四 11:14:04,登录... 未处理的拒绝:Promise(新页面)Promise { 错误:找不到选择器的节点:#id_username 在断言(/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:278:11) 在 Frame.type (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/FrameManager.js:771:5) 在 在 process._tickCallback (internal/process/next_tick.js:188:7) -- 异步 -- 在框架。 (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:144:27) 在 Page.type (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/Page.js:971:29) 在 /Users/bierman/Documents/Applications/bin/arris/arristest.js:49:13 在 在 process._tickCallback (internal/process/next_tick.js:188:7) } 原因:错误:找不到选择器的节点:#id_username 在断言(/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:278:11) 在 Frame.type (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/FrameManager.js:771:5) 在 在 process._tickCallback (internal/process/next_tick.js:188:7) -- 异步 -- 在框架。 (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:144:27) 在 Page.type (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/Page.js:971:29) 在 /Users/bierman/Documents/Applications/bin/arris/arristest.js:49:13 在 在 process._tickCallback (internal/process/next_tick.js:188:7) /Users/bierman/Documents/Applications/bin/arris/arristest.js:29 浏览器.close(); ^

ReferenceError: 浏览器未定义 在 process.on (/Users/bierman/Documents/Applications/bin/arris/arristest.js:29:2) 在 emitTwo (events.js:126:13) 在 process.emit (events.js:214:7) 在 emitPendingUnhandledRejections (internal/process/promises.js:108:22) 在 process._tickCallback (internal/process/next_tick.js:189:7) BigMac:bin michael$ /usr/local/bin/node /Users/bierman/Documents/Applications/bin/arris/arristest.js 2018 年 11 月 15 日星期四 11:20:29,登录... 2018 年 11 月 15 日星期四 11:20:36,回家... 未处理的拒绝:Promise(新页面)Promise { 错误:找不到选择器的节点:#alertExitButton 在断言(/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:278:11) 在 Frame.click (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/FrameManager.js:704:5) 在 在 process._tickCallback (internal/process/next_tick.js:188:7) -- 异步 -- 在框架。 (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:144:27) 在 Page.click (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/Page.js:932:29) 在 /Users/bierman/Documents/Applications/bin/arris/arristest.js:62:13 在 在 process._tickCallback (internal/process/next_tick.js:188:7) } 原因:错误:找不到选择器的节点:#alertExitButton 在断言(/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:278:11) 在 Frame.click (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/FrameManager.js:704:5) 在 在 process._tickCallback (internal/process/next_tick.js:188:7) -- 异步 -- 在框架。 (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/helper.js:144:27) 在 Page.click (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/Page.js:932:29) 在 /Users/bierman/Documents/Applications/bin/arris/arristest.js:62:13 在 在 process._tickCallback (internal/process/next_tick.js:188:7) /Users/bierman/Documents/Applications/bin/arris/arristest.js:29 浏览器.close(); ^

ReferenceError: 浏览器未定义 在 process.on (/Users/bierman/Documents/Applications/bin/arris/arristest.js:29:2) 在 emitTwo (events.js:126:13) 在 process.emit (events.js:214:7) 在 emitPendingUnhandledRejections (internal/process/promises.js:108:22) 在 process._tickCallback (internal/process/next_tick.js:189:7)

【问题讨论】:

  • 可能听起来有点明显,但如果您升级了puppeteer 版本并且仅在升级后看到此问题,您是否尝试过删除您的node_modules 文件夹、package-lock.json 文件然后重新- 使用npm install 从头开始​​安装您的项目依赖项(包括puppeteer 的更新版本)?经常可以清除这样的奇怪错误。
  • 谢谢!很棒的建议。我会试试看会发生什么。
  • 让我知道你的进展如何。如果它仍然出现,将尝试与您一起解决这个问题。
  • 我删除了您指定的文件并重新安装。在此过程中我遇到了一些错误,但事情似乎变得更好了。我不知道我是否应该关注这些错误pastebin.com/R48Nrv44
  • 看起来节点没有它需要的一些权限。我在我的 Mac 上遇到了这个问题,必须手动将节点目录更改为我的用户主目录才能解决它。无论哪种方式,节点文档都可以提供帮助(希望如此)。你应该看看这里来尝试解决你的问题:docs.npmjs.com/…

标签: chromium puppeteer


【解决方案1】:

试试这个:

npm uninstall chromium
npm uninstall puppeteer
npm i chromium@1
npm i puppeteer

【讨论】:

  • 欢迎来到stackoverflow。我建议您写一些关于您的建议的内容,不必太多,足以解释您在做什么以及为什么您认为它可以解决问题,以便任何未来的读者都可以轻松理解您的解决方案。此外,您可能想查看How to Answer,以获取更多关于编写好答案的信息。
猜你喜欢
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 2019-12-29
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多