【问题标题】:Puppeteer "TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded" when running from Crontab从 Crontab 运行时,Puppeteer “TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded”
【发布时间】:2020-02-16 03:02:59
【问题描述】:
我有一个 Node.JS 自动化,它使用 Puppeteer 并加载一些 URL 作为过程的一部分。
我的代码非常基本,只使用了包文档中记录的非常基本的功能。
自动化计划每 15 分钟使用 crontab 运行一次,但由于某些原因在运行后运行我面临TimeoutError: Navigation Timeout Exceeded: 30000ms exceeded 错误并且页面未成功加载。
当我手动运行完全相同的代码时,一切正常,页面加载速度非常快。
有人能想到导致这种奇怪行为的原因吗?
谢谢
【问题讨论】:
标签:
node.js
cron
puppeteer
【解决方案1】:
您可以在puppeteer.launch() 之后添加一个选项page.setDefaultNavigationTimeout(0)。
const browser = await puppeteer.launch()
const page = await browser.newPage()
page.setDefaultNavigationTimeout(0)
希望一切正常。
【解决方案2】:
发现问题,cron 进程从非常基本的环境变量开始。缺少代码所必需的一些变量,这是造成问题的原因。