消息:’geckodriver’ 可执行文件需要在 PATH 中

消息:’geckodriver’ 可执行文件需要在 PATH 中

Message: ‘geckodriver’ executable needs to be in PATH

要解决 Selenium 错误“WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH”,webdriver-manager
通过运行安装和导入模块
pip install webdriver-manager

该模块简化了不同浏览器的二进制驱动程序的管理。

geckodriver 可执行文件需要在路径中

raise WebDriverException( selenium.common.exception.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. )

安装 webdriver-manager 模块

在项目的根目录中打开终端并安装
webdriver-manager模块。

pip install webdriver-manager pip3 install webdriver-manager # 👇️ if you don't have pip in your PATH environment variable python -m pip install webdriver-manager python3 -m pip install webdriver-manager # 👇️ for Anaconda conda install -c conda-forge webdriver-manager

安装
webdriver-manager包后,您可以将其导入并使用,如下所示。

主程序
# ✅ for selenium 4 from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService from webdriver_manager.firefox import GeckoDriverManager driver = webdriver.Firefox( service=FirefoxService(GeckoDriverManager().install())) driver.get("http://www.python.org") driver.close()

上面的代码示例适用于 selenium 4,如果您使用 selenium 3,请使用以下导入语句和初始化代码。

主程序
# ✅ for selenium 3 from selenium import webdriver from webdriver_manager.firefox import GeckoDriverManager driver = webdriver.Firefox(executable_path=GeckoDriverManager().install()) driver.get("http://www.python.org") driver.close()

如果您不确定
您使用的是哪个
seleniumpip show selenium版本,请使用该命令。

pip show selenium

该示例显示了如何将webdriver-manager模块与Firefox
浏览器一起使用,但它也可以与所有其他浏览器一起使用。

这是一个将模块与Chrome.

主程序
# ✅ for selenium version 4 from selenium import webdriver from selenium.webdriver.chrome.service import Service as ChromeService from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=ChromeService( ChromeDriverManager().install())) driver.get("http://www.python.org") driver.close()

如果您使用 selenium 版本 3,请使用以下导入语句和初始化代码。

主程序
# ✅ for selenium version 3 from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) driver.get("http://www.python.org") driver.close()

您可以在官方 pypi 页面中查看如何webdriver-manager在所有其他浏览器中使用该模块
的示例

webdriver_manager模块提供了一种自动管理不同浏览器驱动程序的方法。

使用webdriver_manager软件包时,您无需下载二进制文件、在您的 PC 上解压缩并设置路径。

通过使用该webdriver_manager模块,我们可以只调用install特定驱动程序管理器上的方法,它就可以正常工作。

geckodriver手动下载

如果您决定不使用该webdriver_manager模块,则必须
geckodriver在初始化 Firefox 浏览器时手动设置正确的下载路径。

  1. 首先,访问
    geckodriver发布页面并向下滚动到资产部分。

geckodriver 可执行文件需要在路径中

  1. 请注意,不同的操作系统有不同的文件。其中一些文件适用于 Linux,其他文件适用于 macOS,还有适用于 Windows 的 zip 文件。

  2. 根据您的操作系统下载正确的zip或文件。gz

  3. geckodriverselenium 模块尝试从系统环境变量中找到可执行文件PATH

    • 您要么必须将zipgz文件提取到目录,然后手动将该目录添加到路径。
    • 或者您可以将zip文件解压缩到您的 PATH 中已有的目录中,例如您的 Python 目录。

您可以检查 PATH 上有哪些目录并将geckodriver.exe
文件移动到其中一个目录。

要查看您的 PATH 中已有哪些目录,请在 bash 或 zsh 中发出以下命令。

bash_or_zsh
echo $PATH

以及 Windows 上的以下命令。

命令
echo %PATH%

如果该geckodriver.exe文件不在 PATH 中已有的目录中,请使用以下命令将该目录添加到您的 PATH 中。

对于 bash 外壳:

狂欢
echo 'export PATH=$PATH:/path/to/driver' >> ~/.bash_profile source ~/.bash_profile

对于zsh外壳:

zsh
echo 'export PATH=$PATH:/path/to/driver' >> ~/.zshenv source ~/.zshenv

对于 Windows:

命令
setx PATH "%PATH%;C:\WebDriver\bin"

You can test if the driver has been added correctly by issuing the following
command.

For bash or zsh:

shell
geckodriver

For Windows:

cmd
geckodriver.exe

If you aren’t able to start the Firefox browser without specifying a path, try
explicitly setting the path to the geckodriver.exe file.

main.py
# ✅ for selenium 4 from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService driver = webdriver.Firefox(service=FirefoxService( r'C:/Users/bobbyhadz/Documents/geckodriver.exe') ) driver.get('https://python.org')

Make sure to update the path to the geckodriver.exe file in the code sample.

You can also follow the
official selenium guide
to set up geckodriver.

# Starting with version 4.6, Selenium comes with batteries included

In November 2022, the selenium team introduced Selenium version 4.6.

The version comes with the batteries included and only requires you to have
Firefox installed.

The Selenium package now configures the driver for Firefox if it isn’t present
on the PATH environment variable.

If your selenium version is older than
4.6, update the package by running the following command.

shell
pip install selenium --upgrade pip3 install selenium --upgrade # 👇️ if you don't have pip in your PATH environment variable python -m pip install selenium --upgrade python3 -m pip install selenium --upgrade

You can use the pip show command to check your selenium version.

shell
pip show selenium

If you already have the browser driver installed on your machine, the feature of
automatically setting up browser drivers will be ignored.

The feature is only in effect if selenium cannot find the browser drivers
present on your PATH environment variable.

I’ve also written an article on
Message: ‘chromedriver’ executable needs to be in PATH.

The error occurs when using Chrome with Selenium.