【发布时间】:2018-11-15 19:36:03
【问题描述】:
我运行了一个 puppeteer 脚本来重新启动我的调制解调器。我猜它已经工作了大约一年,没有问题。 5天前它停止工作。我正在研究它,并意识到我遇到了运行它时没有遇到的错误,并且脚本失败了。问题是我没有改变任何东西。据我所知,HTML 也没有改变,但它失败了。所以我想知道 Chromium 或 puppeteer 中是否存在错误,或者它是否以不同的方式处理事情?
这是一个带有https://codepen.io/michaelbierman/pen/qQjdYR的codepen
- HTML 页面
- 傀儡脚本
错误
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/…