意外错误消息

时间:2018-05-03 01:31:39

标签: node.js google-chrome puppeteer

我正在使用带无头镀铬的木偶操作来执行以下脚本 https://gist.github.com/mbierman/5b3e671fa4e848eec899ff486d0cdc26

我想要它做什么,但是我得到以下错误:

(node:1374) UnhandledPromiseRejectionWarning: Error: Navigation Timeout Exceeded: 30000ms exceeded
    at Promise.then (/Users/bierman/Documents/Applications/bin/arris/node_modules/puppeteer/lib/NavigatorWatcher.js:73:21)
    at <anonymous>
(node:1374) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1374) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
+ duration=32

这些问题与我的木偶剧本或木偶戏分发有关吗?我想我正在运行最新版本。

1 个答案:

答案 0 :(得分:1)

代码看起来需要使用正确的async-await进行重构:

  • process.on("unhandledRejection")应位于文件的顶部。
  • page.setViewport应该等待。
  • page.goto可以使用参数{waitUntil: 'load'}等待页面加载。
  • page.click应该等待。
  • 创建页面时应调用
  • page.on('dialog')
  • browser.close应该等待。

不确定,但它甚至可能是您尝试加载的页面存在问题。

  • http://192.168.0.1/login.asp是否在浏览器中加载?
  • 它是否代理?

如果您要求并尝试逐个解决,您将拥有工作代码。

详细了解async await和promises here。还有其他可用的资源,但最好是在使用之前了解异步的本质。