javascript - 如何修复 Puppeteer 中的“没有这样的文件或目录”错误
问题描述
我执行了下一页的代码。但是发生了错误。
我试图更改代码,但没有这样的文件或目录错误无法修复并且它不起作用。
https://www.npmjs.com/package/puppeteer-to-istanbul
原始代码错误
(node:18592) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open 'C:\Users\username\Desktop\.nyc_output\js\m=WgDvvc,aa,abd,async,dvl,fEVMic,foot,lu,m,mUpTid,mu,sb_wiz,sf,spch,xz7cCd?xjs=s1.js'
at Object.openSync (fs.js:443:3)
at Object.writeFileSync (fs.js:1194:35)
at OutputFiles._parseAndIsolate (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\output-files.js:52:10)
at new OutputFiles (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\output-files.js:18:10)
at module.exports (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\output-files.js:62:10)
at new PuppeteerToIstanbul (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\puppeteer-to-istanbul.js:10:33)
at module.exports (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\puppeteer-to-istanbul.js:37:10)
at Object.write (C:\Users\username\node_modules\puppeteer-to-istanbul\index.js:5:17)
at C:\Users\username\Desktop\original.js:19:7
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:18592) 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:18592) [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.
将 .catch() 添加到原始代码的代码
(async () => {
const pti = require('puppeteer-to-istanbul')
const puppeteer = require('puppeteer')
const browser = await puppeteer.launch()
const page = await browser.newPage()
// Enable both JavaScript and CSS coverage
await Promise.all([
page.coverage.startJSCoverage(),
page.coverage.startCSSCoverage()
]);
// Navigate to page
await page.goto('https://www.google.com');
// Disable both JavaScript and CSS coverage
const [jsCoverage, cssCoverage] = await Promise.all([
page.coverage.stopJSCoverage(),
page.coverage.stopCSSCoverage(),
]);
pti.write(jsCoverage)
await browser.close()
})().catch(e => console.error(e))
添加 .catch() 的代码出错
{ Error: ENOENT: no such file or directory, open 'C:\Users\username\Desktop\.nyc_output\js\m=WgDvvc,aa,abd,async,dvl,fEVMic,foot,lu,m,mUpTid,mu,sb_wiz,sf,spch,xz7cCd?xjs=s1.js'
at Object.openSync (fs.js:443:3)
at Object.writeFileSync (fs.js:1194:35)
at OutputFiles._parseAndIsolate (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\output-files.js:52:10)
at new OutputFiles (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\output-files.js:18:10)
at module.exports (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\output-files.js:62:10)
at new PuppeteerToIstanbul (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\puppeteer-to-istanbul.js:10:33)
at module.exports (C:\Users\username\node_modules\puppeteer-to-istanbul\lib\puppeteer-to-istanbul.js:37:10)
at Object.write (C:\Users\username\node_modules\puppeteer-to-istanbul\index.js:5:17)
at C:\Users\username\Desktop\original_add_catch.js:19:7
at process._tickCallback (internal/process/next_tick.js:68:7)
errno: -4058,
syscall: 'open',
code: 'ENOENT',
path:
'C:\\Users\\username\\Desktop\\.nyc_output\\js\\m=WgDvvc,aa,abd,async,dvl,fEVMic,foot,lu,m,mUpTid,mu,sb_wiz,sf,spch,xz7cCd?xjs=s1.js' }
以下代码将起作用。
(async () => {
const pti = require('puppeteer-to-istanbul')
const puppeteer = require('puppeteer')
const browser = await puppeteer.launch()
const page = await browser.newPage()
// Enable both JavaScript and CSS coverage
await page.coverage.startCSSCoverage()
// Navigate to page
await page.goto('https://www.google.com/');
// Disable both JavaScript and CSS coverage
const cssCoverage = await page.coverage.stopCSSCoverage();
pti.write(cssCoverage)
await browser.close()
})()
环境
- 视窗10
- node.js v10.16.0
解决方案
推荐阅读
- javascript - Javascript中的计数器不递减
- apache-spark - 连接磁盘上的 ORC 分区文件?
- python - 如何将列表中的所有数字提高到其索引的幂
- google-cloud-platform - 回退和提示消息之间的区别 (Dialogflow)
- javascript - HTML表单在提交时丢失了它的值?
- javascript - AngularJs范围参数未定义
- redux - Redux:更新列表中的一项而不更新依赖于该列表的所有其他组件
- visual-studio-code - 如何调试 Visual Studio Code 扩展?
- python - 在 Mac 上的 pycharm 中安装 Scikit-learn
- javascript - 将服务器推送通知解析到用户数组