gpt4 book ai didi

node.js - 带有 geckodriver 的 Firefox 无法在 Ubuntu 服务器上启动

转载 作者:太空宇宙 更新时间:2023-11-03 22:57:25 25 4
gpt4 key购买 nike

我有 Ubuntu Server 19.04 64 位。我使用以下软件包:

  • nodejs v10.16.0
  • Mozilla 火狐浏览器 68.0.1

我在我的node.js项目中安装了selenium-webdriver ^4.0.0-alpha.4

我还使用以下算法安装了 geckodriver 0.24.0:

sudo wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz
tar -xvzf geckodriver-v0.24.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/local/bin/

我的项目有index.js,代码如下:

const {Builder, By, Key, util} = require("selenium-webdriver");
const firefox = require('selenium-webdriver/firefox');
async function example() {
let options = await new firefox.Options()
.headless();
let driver = await new Builder().forBrowser("firefox").setFirefoxOptions(options).build();
await driver.get("https://mobile.facebook.com");
await driver.close();
}
example();

当我使用命令 sudo node index.js 启动脚本时,出现以下错误:

(node:1303) UnhandledPromiseRejectionWarning: WebDriverError: invalid argument: can't kill an exited process
at Object.throwDecodedError (/var/nodejs/sites/test/node_modules/selenium-webdriver/lib/error.js:550:15)
at parseHttpResponse (/var/nodejs/sites/test/node_modules/selenium-webdriver/lib/http.js:560:13)
at Executor.execute (/var/nodejs/sites/test/node_modules/selenium-webdriver/lib/http.js:486:26)
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:1303) 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:1303) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

错误:无效参数:无法终止已退出的进程,我不知道如何解决这个问题...如果您需要更多有关我的情况的信息,请询问我,我会尽力回答。

UPD:我尝试了最新版本的 geckodriver 并查看了我得到的结果:

0.24.0:WebDriverError:无效参数:无法终止已退出的进程

0.23.0:WebDriverError:无效参数:无法终止已退出的进程

0.22.0:WebDriverError:无效参数:无法终止已退出的进程

0.21.0:WebDriverError:进程意外关闭,状态为 1

0.20.1:WebDriverError:进程意外关闭,状态为 1

0.20.0:WebDriverError:进程意外关闭,状态为 1

...

最佳答案

您需要更新您的 Firefox 浏览器,这可能是由于 GeckoDriver 与 Firefox 浏览器不匹配而导致的。

如果这也不起作用,则使用以下版本的 gecko 驱动程序,尝试使用第二个和第三个最后更新版本的 gecko 驱动程序。

不推荐,您仍然可能需要降级浏览器并尝试最新版本,或者尝试使用第二个和第三个最新更新版本的 gecko 驱动程序。当二进制文件可用于最新的 Firefox 版本后,您应该尝试使用最新版本更新相同内容

这也是您的 geckodriver 未退出并且仍在运行的可能性之一,这会抑制新 session 的打开,您可以使用下面的文章来终止您的 geckodriver 进程

https://www.tecmint.com/find-and-kill-running-processes-pid-in-linux/

关于node.js - 带有 geckodriver 的 Firefox 无法在 Ubuntu 服务器上启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57216862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com