【发布时间】:2019-08-14 22:46:11
【问题描述】:
我用nodejs + puppeteer制作了下面的这段代码,其目标是截取用户站点的屏幕截图:
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('http://MY_WEBSITE/try/slowURL',{timeout: 30000, waitUntil: 'networkidle0' });//timeout 30 seconds
await page.setViewport({width: 1920, height: 1080});
await page.screenshot({path: pathUpload});
await browser.close();
它的操作非常简单,但为了测试超时,我创建了一个页面 (http://MY_WEBSITE/try/slowURL),需要 200 秒才能加载。
根据 puppeteer 超时 (timeout: 30000),有 100% 的可能性发生 Navigation Timeout Exceeded: 30000ms exceeded 错误,尤其是因为我在强制它。
问题
通过htop命令(在linux中使用),即使在系统崩溃并显示“TimeoutError”之后,我也可以看到浏览器并没有关闭。
如果浏览器没有关闭,当扫描完成时,服务器很有可能会耗尽内存,我不希望这样。
我该如何解决这个问题?
【问题讨论】: