错误:EPERM:运行Puppeter JavaScript节点时不允许操作

错误:EPERM:运行Puppeter JavaScript节点时不允许操作,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我有一个脚本,它在一个无限循环中浏览几个URL,并通知我网站的任何更改。每次我让它运行一段时间,我回来发现它已经完成了数十次/数百次循环迭代,但我最终发现了这个错误 [Error: EPERM: operation not permitted, unlink 'C:\Users\user\AppData\Local\Temp\puppeteer_dev_chrome_profile-3thzgE\CrashpadMetrics-active.pma'] { errno: -4048, c

我有一个脚本,它在一个无限循环中浏览几个URL,并通知我网站的任何更改。每次我让它运行一段时间,我回来发现它已经完成了数十次/数百次循环迭代,但我最终发现了这个错误

[Error: EPERM: operation not permitted, unlink 'C:\Users\user\AppData\Local\Temp\puppeteer_dev_chrome_profile-3thzgE\CrashpadMetrics-active.pma'] {
  errno: -4048,
  code: 'EPERM',
  syscall: 'unlink',
  path: 'C:\\Users\\user\\AppData\\Local\\Temp\\puppeteer_dev_chrome_profile-3thzgE\\CrashpadMetrics-active.pma'
}
此错误似乎不会发生在特定的行上,因为如前所述,脚本在获得此错误之前已经完成了多次循环迭代

[Error: EPERM: operation not permitted, unlink 'C:\Users\user\AppData\Local\Temp\puppeteer_dev_chrome_profile-3thzgE\CrashpadMetrics-active.pma'] {
  errno: -4048,
  code: 'EPERM',
  syscall: 'unlink',
  path: 'C:\\Users\\user\\AppData\\Local\\Temp\\puppeteer_dev_chrome_profile-3thzgE\\CrashpadMetrics-active.pma'
}
我在谷歌上搜索了这个错误,但似乎人们只有在NPM中才真正体验到这个错误,或者如果他们真的在《木偶演员》中体验到了这个错误,那么它就出现在他们代码的某一行。当我使用在线.pma阅读器读取.pma文件时,我得到的信息如下:

 CrashpadMetrics UMA.PersistentAllocator.CrashpadMetrics.UsedPct UMA.PersistentAllocator.CrashpadMetrics.Errors Crashpad.HandlerLifetimeMilestone Stability.BrowserExitCodes

如果您在类似的情况下在Windows上运行此操作,那么解决方案是将节点进程添加到Windows安全性的排除列表中。我认为它阻止了对一些临时文件的访问,而节点在这方面失败了。

我就是这样做的

虽然这是一种恼人的行为,但有一种解决方法:在关闭浏览器之前关闭所有页面

let pages=wait browser.pages();等待Promise.all(pages.map(page=>page.close());等待浏览器关闭()


您是否只需在排除列表中键入
节点
?不是文件夹或任何东西,对吗?是的,我只是在排除列表中添加了“node”作为进程名称,但是添加临时文件夹可以工作。@Andris提供的答案对你有好处吗?如果是,请接受?我也有同样的问题。大量的成功,然后一堆这些弹出窗口。我不能在我的工作中按照IT进行排除列表调整。但我不相信这是真正的答案。在我们的案例中,它可以工作数千次,然后我们看到这些CrashpadMetrics取消链接错误。@NeilGuyLindberg我没有尝试使用Andris的答案来解决这个问题,所以我还不能接受它。然而,我也不能完全肯定这是正确的答案。