javascript - 为什么我会收到 JavaScript Puppeteer 错误 : "ECONNREFUSED"?

标签 javascript node.js async-await puppeteer

我正在尝试运行一个简单的测试 Puppeteer 脚本,我在其中打开 Google Chrome,然后通过执行以下操作将其关闭:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch(
    {executablePath: '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'},
    {headless: false},
    {ignoreHTTPSErrors: true});
  const page = await browser.newPage();
  await page.goto('https://www.google.com');

  await browser.close();
})().catch(error => { console.error("Something bad happend...", error); });;

但是,我得到的错误是:

Something bad happend... ErrorEvent {
  target:
   WebSocket {
     _events:
      [Object: null prototype] { open: [Function], error: [Function] },
     _eventsCount: 2,
     _maxListeners: undefined,
     readyState: 3,
     protocol: '',
     _binaryType: 'nodebuffer',
     _closeFrameReceived: false,
     _closeFrameSent: false,
     _closeMessage: '',
     _closeTimer: null,
     _closeCode: 1006,
     _extensions: {},
     _receiver: null,
     _sender: null,
     _socket: null,
     _bufferedAmount: 0,
     _isServer: false,
     _redirects: 0,
     url:
      'ws://(my IP address)/devtools/browser/ae12c970-126d-463c-af41-1ab49be03575',
     _req: null },
  type: 'error',
  message: 'connect ECONNREFUSED (my IP address)',
  error:
   { Error: connect ECONNREFUSED (my IP address)
       at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
     errno: 'ECONNREFUSED',
     code: 'ECONNREFUSED',
     syscall: 'connect',
     address: '(my IP address)',
     port: (my port)} }

此外,我还尝试将我的代码运行为:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({executablePath: "/mnt/c/'Program Files (x86)'/Google/Chrome/Application/chrome.exe"});
  const page = await browser.newPage();
  await page.goto('https://www.google.com');

  await browser.close();
})();

但是我得到了错误:

(node:2178) UnhandledPromiseRejectionWarning: Error: Failed to launch the browser process! spawn /mnt/c/'Program Files (x86)'/Google/Chrome/Application/chrome.exe ENOENT

我对 javascript 和 puppeteer 还很陌生,所以我可能遗漏了一些明显的东西。这是自动在线填写表格的更大努力的一部分,因此似乎 puppeteer 是可行的方法。但是,如果有人对如何做到这一点有更好的建议,我们将不胜感激。有什么想法吗?


编辑 1: 我下载了 Firefox 并链接到它而不是 Chrome。在任务管理器打开的情况下运行时,几秒钟后,会出现一个弹出窗口。此外,Firefox 只会在该框弹出时显示为正在运行,而不是在弹出之前显示。您可以在下面链接的视频中看到该过程:

https://vimeo.com/user119175210/review/436574888/590a38ef10

最佳答案

我也遇到过。我禁用了我的防病毒软件和防火墙,然后它就起作用了。

关于javascript - 为什么我会收到 JavaScript Puppeteer 错误 : "ECONNREFUSED"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62802427/

相关文章:

javascript - 在 Javascript 中循环包含 Ajax 调用的函数

javascript - 如何使用外部 AS 文件将 AS3 转换为 HTML5

javascript - 如何比较两个 Moment.js 对象

javascript - 预加载器在 HTML 完成加载/Javascript 之前消失

javascript - 根据浏览器的宽度调整 div 的宽度

c# - 异步线程体循环,它只是工作,但如何?

node.js - 在 Windows 上运行 Node.js 服务器

node.js - Typescript从 Node 模块导入ts文件

node.js - 在mongodb中保存位置

c# - 异步任务中的 HttpContext.Current null