【问题标题】:No such file or directory: 'geckodriver' for a simple Selenium application in Python没有这样的文件或目录:Python 中简单 Selenium 应用程序的“geckodriver”
【发布时间】:2025-12-15 20:05:02
【问题描述】:

我正在 Linux 上运行一个简单的 selenium 示例:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("something")

并得到一个错误:

FileNotFoundError: [Errno 2] No such file or directory: 'geckodriver'

如何解决?

$ python
Python 3.5.2 (default, Jun 28 2016, 08:46:01) 
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>> from selenium.webdriver.common.keys import Keys
>>> 

【问题讨论】:

  • 在 Java 中,我需要设置 gecko 驱动程序的系统属性,这可能也是您需要做的,但我不太了解 Python。我在 Java 中使用的:System.setProperty("webdriver.gecko.driver", "path/to/driver");

标签: python selenium


【解决方案1】:

下载 geckodriver

geckodriver 可执行文件可以在here 下载。

Python3 venv

从上面的链接下载 geckodriver 可执行文件并将其解压到env/bin/ 以使其仅可供虚拟环境访问。

在您的 Python 代码中,您现在可以执行以下操作:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("https://*.com/")

Linux

如果您想让它在系统范围内可用,请从上述链接下载 geckodriver 可执行文件并将其解压缩到 /usr/bin/(或 $PATH 内的任何内容)

Windows

注意:这需要windows用户测试确认

从上述链接下载 geckodriver 并将其解压缩到 C:\Windows\System32\(或您的 Path 环境变量中的任何内容)。

Mac OS X

注意:我从Vincent van Leeuwen 的回答in this very question 中得到这个。将其放在这里是为了将所有内容集中在一个答案中

要使 geckodriver 在系统范围内可用,请打开您的终端应用程序并执行以下命令:

brew install geckodriver

更多信息

关于硒的更多信息可以找到here:

Selenium 需要驱动程序才能与所选浏览器交互。例如,Firefox 需要 geckodriver,在运行以下示例之前需要安装它。确保它在您的 PATH 中,例如。 g.,将其放在 /usr/bin 或 /usr/local/bin 中。

不遵守此步骤将给您一个错误 selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

【讨论】:

  • 您能否更新您的答案以包含信息以防链接失效?
  • @Suspended 你能澄清一下你下载了什么吗?我能够从答案中的链接下载 Windows 和 Linux 二进制文件
【解决方案2】:

我在 Linux 中遇到了同样的问题。我使用以下步骤来修复该错误。

cd /bin

# Check on https://github.com/mozilla/geckodriver/releases for the latest release
wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux32.tar.gz
tar -xvzf geckodriver-v0.24.0-linux32.tar.gz
rm geckodriver-v0.24.0-linux32.tar.gz
chmod +x geckodriver
export PATH=$PATH:/bin/geckodriver

geckodriver --version

注意:我尝试使用最新版本的 geckodriver-v0.26.0 但它不适合我,这就是我安装旧版本 v0.24.0 的原因

【讨论】:

    【解决方案3】:

    Linux: 你可以安装“sudo apt install firefox-geckodriver”

    【讨论】:

      【解决方案4】:

      Selenium 需要 geckodriver 才能与 Firefox 交互。以下是geckodriver的安装方法:

      1. https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz下载geckodriver(或者如果你需要32位版本,去https://github.com/mozilla/geckodriver/releases查看更多下载选项)
      2. 将文件解压到您的“下载”文件夹中
      3. 打开控制台并运行sudo mv ~/Downloads/geckodriver /usr/bin

      【讨论】:

        【解决方案5】:

        Mac OSX:

        火狐? brew install geckodriver

        铬? brew install chromedriver

        【讨论】:

          【解决方案6】:

          在linux上,你可以install Homebrew然后brew install geckodriver通过它

          sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
          brew install geckodriver
          

          installing Nix

          curl https://nixos.org/nix/install | sh
          nix install geckodriver
          

          但是在您的系统中添加另一个包管理器可能不是一个好主意。

          【讨论】:

            【解决方案7】:

            Mac OSX:

            火狐? brew install geckodriver

            铬? brew install chromedriver

            选择一个:

            driver = webdriver.Firefox()   # brew install geckodriver
            driver = webdriver.Chrome()    # brew install chromedriver
            

            【讨论】:

            • 开始编辑他们的答案,并决定添加我自己的答案而不是多次编辑他们的答案。
            【解决方案8】:

            这是正确的方法:

            sudo apt-get install firefox-geckodriver
            

            您不需要手动安装。

            【讨论】:

              最近更新 更多