【问题标题】:Why am I getting JavaScript Puppeteer error: "ECONNREFUSED"?为什么我收到 JavaScript Puppeteer 错误:“ECONNREFUSED”?
【发布时间】:2020-10-29 07:33:06
【问题描述】:

我正在尝试运行一个简单的测试 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

【问题讨论】:

  • 您是否安装了防火墙?端口开放了吗?
  • @Bsalex 没有防火墙,我也在本地运行(没有 SSH)
  • 无需隐藏您的 IP 地址。每个人都知道它是127.0.0.1。 ????

标签: javascript node.js async-await puppeteer


【解决方案1】:

这也发生在我身上。我禁用了我的防病毒软件和防火墙,然后它就起作用了。

【讨论】:

  • 这只是一个连接错误,当它无法到达 url 或任何特定端口时,它会给出 ECONNREFUSED ERROR,即 TCP 连接错误。
  • yes @praveen2609 当我收到那个错误时,我无法访问该 url,因为我的防火墙阻止了连接,不知道为什么 :)
  • 我没有使用防火墙,不知道为什么会出现这个错误。我最初尝试使用 puppeteer 的内置铬,但我遇到了奇怪的错误,所以我链接到我的谷歌浏览器。知道为什么这会给我带来问题吗?
  • 那么您是说您在 google chrome 中没有遇到奇怪的错误,而是在 chromium 中遇到错误?
  • @Arun 它不适用于 Chrome、Chromium 和 Firefox。我在这个答案的链接之后取得了一些进展:stackoverflow.com/questions/35624689/…
猜你喜欢
  • 1970-01-01
  • 2020-11-05
  • 2015-01-30
  • 2014-02-10
  • 2015-06-27
  • 2013-07-31
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
相关资源
最近更新 更多