javascript - 为什么我收到 JavaScript Puppeteer 错误:“ECONNREFUSED”?
问题描述
我正在尝试运行一个简单的测试 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 只会在该框弹出时才显示为正在运行,而不是在它之前。您可以在下面链接的视频中看到该过程:
解决方案
它也发生在我身上。我禁用了我的防病毒软件和防火墙,然后它就起作用了。