Javascript 为什么Puppeter firefox不能在服务器上运行?

Javascript 为什么Puppeter firefox不能在服务器上运行?,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我正在尝试在Windows Server 2008和2016上运行 有什么解决方案可以启动它吗?我找了很多,但什么也没找到。 我得到一个错误: C:\Users\Administrator\Desktop\_t>node app.js ERROR: The process "1212" not found. (node:4276) UnhandledPromiseRejectionWarning: Error: Failed to launch Firefox! at onCl

我正在尝试在Windows Server 2008和2016上运行 有什么解决方案可以启动它吗?我找了很多,但什么也没找到。 我得到一个错误:

C:\Users\Administrator\Desktop\_t>node app.js
ERROR: The process "1212" not found.
(node:4276) UnhandledPromiseRejectionWarning: Error: Failed to launch Firefox!


    at onClose (C:\Users\Administrator\Desktop\_t\node_modules\puppeteer-firefox
\lib\Launcher.js:263:14)
    at Interface.helper.addEventListener (C:\Users\Administrator\Desktop\_t\node
_modules\puppeteer-firefox\lib\Launcher.js:252:50)
    at Interface.emit (events.js:187:15)
    at Interface.close (readline.js:379:8)
    at Socket.onend (readline.js:157:10)
    at Socket.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1094:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
  -- ASYNC --
    at Puppeteer.<anonymous> (C:\Users\Administrator\Desktop\_t\node_modules\pup
peteer-firefox\lib\helper.js:31:27)
    at C:\Users\Administrator\Desktop\_t\a.js:253:21
    at afterLogin (C:\Users\Administrator\Desktop\_t\a.js:277:4)
    at Object.start (C:\Users\Administrator\Desktop\_t\a.js:101:2)
    at Object.<anonymous> (C:\Users\Administrator\Desktop\_t\app.js:156:7)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:282:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
(node:4276) 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:4276) [DEP0018] DeprecationWarning: Unhandled promise rejections are depre
cated. In the future, promise rejections that are not handled will terminate the
 Node.js process with a non-zero exit code.
C:\Users\Administrator\Desktop\\u t>node app.js
错误:找不到进程“1212”。
(节点:4276)未经处理的PromisejectionWarning:错误:无法启动Firefox!
立即关闭(C:\Users\Administrator\Desktop\node\modules\puppeter firefox
\lib\Launcher.js:263:14)
在Interface.helper.addEventListener(C:\Users\Administrator\Desktop\\节点
_modules\puppeter firefox\lib\Launcher.js:252:50)
在Interface.emit(events.js:187:15)
在Interface.close(readline.js:379:8)
位于Socket.onend(readline.js:157:10)
在Socket.emit(events.js:187:15)
在endReadableNT(_stream_readable.js:1094:12)
在进程中。_tick回调(内部/process/next_tick.js:63:19)
--异步的--
在Puppeter。

我在VPS窗口上也遇到了同样的问题(无法启动Firefox)

所以我转到节点\模块/puppeter-firefox/.local-browser/../firefox.exe并尝试打开它。当我试图打开exe文件时,出现了0xc00007b错误

下载适用于Windows的“All-in-One Runtimes”,并开始安装所有软件。我做了这个,这个对我有用。 试试看,告诉我

编辑:(为糟糕的英语道歉)

我在我的VPS窗口上也遇到了同样的问题(无法启动Firefox)

所以我转到节点\模块/puppeter-firefox/.local-browser/../firefox.exe并尝试打开它。当我试图打开exe文件时,出现了0xc00007b错误

下载适用于Windows的“All-in-One Runtimes”,并开始安装所有软件。我做了这个,这个对我有用。 试试看,告诉我


编辑:(为糟糕的英语道歉)

请不要再使用
木偶firefox
软件包。它已被弃用。
Firefox的实验性支持现在包含在官方的
puppeter
软件包中

下面介绍如何在Firefox上运行脚本:

(async () => {
  const browser = await puppeteer.launch(firefoxOptions);

  const page = await browser.newPage();
  console.log(await browser.version());

  await page.goto('https://news.ycombinator.com/');

  // Extract articles from the page.
  const resultsSelector = '.storylink';
  const links = await page.evaluate((resultsSelector) => {
    const anchors = Array.from(document.querySelectorAll(resultsSelector));
    return anchors.map((anchor) => {
      const title = anchor.textContent.trim();
      return `${title} - ${anchor.href}`;
    });
  }, resultsSelector);
  console.log(links.join('\n'));

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

如果在启动Firefox时仍然存在问题,请告诉我们,我们可以解决它。

请不要再使用
Puppeter Firefox
软件包。它已被弃用。
Firefox的实验性支持现在包含在官方的
puppeter
软件包中

下面介绍如何在Firefox上运行脚本:

(async () => {
  const browser = await puppeteer.launch(firefoxOptions);

  const page = await browser.newPage();
  console.log(await browser.version());

  await page.goto('https://news.ycombinator.com/');

  // Extract articles from the page.
  const resultsSelector = '.storylink';
  const links = await page.evaluate((resultsSelector) => {
    const anchors = Array.from(document.querySelectorAll(resultsSelector));
    return anchors.map((anchor) => {
      const title = anchor.textContent.trim();
      return `${title} - ${anchor.href}`;
    });
  }, resultsSelector);
  console.log(links.join('\n'));

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

如果在启动Firefox时仍然存在问题,请告诉我们,我们可以解决它。

确保
headless
不是
false
?请注意,要启动Firefox,您必须在机器上安装桌面环境。默认情况下,大多数服务器操作系统都没有桌面环境。我尝试将headless指定为true和false。我检查了所有必要的环境变量是否存在。我在相同的服务器上运行了与chrome一起工作的Puppeter。但是要使用firefox(Puppeter firefox)无法启动。请确保
headless
不是
false
?请注意,要启动firefox,您必须在计算机上安装桌面环境。默认情况下,大多数服务器操作系统都没有桌面环境。我尝试将headless指定为true和false。我检查了所有必要的环境变量是否存在。我在相同的服务器上运行了与chrome一起工作的Puppeter。但与firefox(Puppeter firefox)合作无法启动。