Node.js Firefox与geckodriver don';无法在Ubuntu服务器上启动

Node.js Firefox与geckodriver don';无法在Ubuntu服务器上启动,node.js,firefox,selenium-webdriver,geckodriver,ubuntu-19.04,Node.js,Firefox,Selenium Webdriver,Geckodriver,Ubuntu 19.04,我有Ubuntu服务器19.04 64位。 我使用以下软件包: nodejsv10.16.0 Mozilla Firefox 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-linu

我有Ubuntu服务器19.04 64位。 我使用以下软件包:

  • nodejsv10.16.0
  • Mozilla Firefox 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和loock的最新版本,我得到:

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 driver的第二和第三个最新更新版本。当二进制文件可用于最新的firefox版本时,您应该尝试使用最新版本更新相同的文件

这也是geckodriver没有退出的可能性之一,因此它仍在运行,禁止打开新会话,您可以使用下面的文章终止geckodriver进程


所以,在对geckodriver和farefox的不同版本进行长时间测试后,我解决了我的问题

我只是尝试将farefox降级到v57.0,但我没有尝试使用新版本。 我偷用geckodriver 0.24.0


更多关于降级的信息,请点击此处

谢谢,GeckoDriver和Firefox浏览器之间确实不匹配。这对你来说太好了。。请点击右键接受答案好吗。。。这将有助于感谢我接受你的答案,但是,请编辑你的答案:
你需要更新Firefox
你需要降级Firefox
或者类似的东西。我将farefox的版本改为更旧的-57,这是我问题的解决方案。谢谢@GeneralTao。。我已经更新了答案,并对你的答案和问题进行了投票。。干杯