Почему я получаю сообщение об ошибке JavaScript Puppeteer: «ECONNREFUSED»? - PullRequest
2 голосов
/ 08 июля 2020

Я пытаюсь запустить простой тестовый сценарий 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 и кукловод , поэтому я могу упустить что-то очевидное. Это часть больших усилий по автоматизации заполнения онлайн-формы, поэтому кажется, что кукловод - это путь к go. Однако, если у кого-то есть лучшее предложение, как это сделать, мы будем очень признательны. Есть идеи?

РЕДАКТИРОВАТЬ 1: Я скачал Firefox и сделал ссылку на него вместо Chrome. При запуске с открытым диспетчером задач через несколько секунд появится всплывающее окно. Кроме того, Firefox будет отображаться как запущенный только после появления этого окна, но не перед ним. Вы можете увидеть этот процесс в видео по ссылке ниже:

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

1 Ответ

1 голос
/ 08 июля 2020

Это случилось и со мной. Я отключил антивирус и брандмауэр, и все заработало.

...