消息:’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
。
该模块简化了不同浏览器的二进制驱动程序的管理。
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 浏览器时手动设置正确的下载路径。
- 首先,访问
geckodriver发布页面并向下滚动到资产部分。
-
请注意,不同的操作系统有不同的文件。其中一些文件适用于 Linux,其他文件适用于 macOS,还有适用于 Windows 的 zip 文件。
-
根据您的操作系统下载正确的
zip
或文件。gz
-
geckodriver
selenium 模块尝试从系统环境变量中找到可执行文件PATH
。- 您要么必须将
zip
或gz
文件提取到目录,然后手动将该目录添加到路径。 - 或者您可以将
zip
文件解压缩到您的 PATH 中已有的目录中,例如您的 Python 目录。
- 您要么必须将
您可以检查 PATH 上有哪些目录并将geckodriver.exe
文件移动到其中一个目录。
要查看您的 PATH 中已有哪些目录,请在 bash 或 zsh 中发出以下命令。
echo $PATH
以及 Windows 上的以下命令。
echo %PATH%
如果该geckodriver.exe
文件不在 PATH 中已有的目录中,请使用以下命令将该目录添加到您的 PATH 中。
对于 bash 外壳:
echo 'export PATH=$PATH:/path/to/driver' >> ~/.bash_profile source ~/.bash_profile
对于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:
geckodriver
For Windows:
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.
# ✅ 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.
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.
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.