我正在使用带无头镀铬的木偶操作来执行以下脚本 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
这些问题与我的木偶剧本或木偶戏分发有关吗?我想我正在运行最新版本。
答案 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。还有其他可用的资源,但最好是在使用之前了解异步的本质。