【问题标题】:Firefox with geckodriver don't start on Ubuntu Server带有 geckodriver 的 Firefox 无法在 Ubuntu 服务器上启动
【发布时间】:2019-12-04 14:40:04
【问题描述】:

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

  • nodejs v10.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.

错误:invalid argument: can't kill an exited process,我不知道,如何解决这个问题... 如果您需要有关我的情况的更多信息,请询问我,我会尽力回答。

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

0.24.0:WebDriverError: invalid argument: can't kill an exited process

0.23.0:WebDriverError: invalid argument: can't kill an exited process

0.22.0:WebDriverError: invalid argument: can't kill an exited process

0.21.0:WebDriverError: Process unexpectedly closed with status 1

0.20.1:WebDriverError: Process unexpectedly closed with status 1

0.20.0:WebDriverError: Process unexpectedly closed with status 1

...

【问题讨论】:

    标签: node.js firefox selenium-webdriver geckodriver ubuntu-19.04


    【解决方案1】:

    您需要更新您的 Firefox 浏览器,这可能是因为 GeckoDriver 和 Firefox 浏览器不匹配。

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

    不推荐,但仍有可能您需要降级浏览器并尝试最新版本,或者尝试使用 gecko 驱动程序的第二个和第三个最新更新版本。当二进制文件可用于最新的 firefox 版本时,您应该尝试将其更新为最新版本

    这也是你的 geckodriver 没有退出的可能性之一,所以它仍在运行,抑制新会话打开,你可以使用下面的文章来杀死你的 geckodriver 进程

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

    【讨论】:

    • 谢谢,GeckoDriver 和 Firefox 浏览器确实不匹配。
    • 它对你有用,太好了..你能不能通过点击右边的符号来接受答案......这会有所帮助,谢谢
    • 我接受了你的回答,但是,请编辑你的回答:you need update Firefoxyou need downgrade Firefox 或类似的东西。我将我的 farefox 版本更改为更旧的版本 - 57,这是我的问题的解决方案。
    • 谢谢@GeneralTao .. 我已经更新了答案,并为你的答案和问题投票了 .. 干杯
    【解决方案2】:

    所以,经过长时间测试不同版本的 geckodriver 和 farefox,我解决了我的问题!

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

    更多关于降级的信息在这里https://askubuntu.com/questions/661186/how-to-install-previous-firefox-version

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-17
      • 2017-06-23
      • 2022-06-14
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      相关资源
      最近更新 更多