我在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
>>>
下载geckodriver
geckodriver可执行文件可以在这里下载。
Python3 venv
从上面的链接下载geckodriver可执行文件,并将其解压缩到env/bin/
,使其只能在虚拟环境中访问。
在你的python代码中,你现在可以做以下事情:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("https://stackoverflow.com/")
Linux 如果您想使其在系统范围内可用,请从上面的链接下载geckodriver可执行文件并将其解压缩到/usr/bin/
(或$PATH中的任何内容)
注意:这需要一个windows用户来测试和确认
从上面的链接下载geckodriver并将其解压到C:WindowsSystem32
(或Path环境变量中的任何内容)。
Mac OS X
注:我摘自Vincent van Leeuwen对这个问题的回答。把它放在这里是为了把所有内容集中在一个答案中
要使geckodriver在系统范围内可用,打开终端应用程序并执行以下命令:
brew install geckodriver
更多信息
关于硒的更多信息可以在这里找到:
Selenium需要一个驱动程序来与所选的浏览器连接。例如,Firefox需要安装geckodriver,在运行下面的示例之前需要安装geckodriver。确保它在您的PATH中,例如,将它放在/usr/bin或/usr/local/bin中。
不执行此步骤将会给你一个错误selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable need to be in PATH.
我在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
Linux:sudo apt install firefox-geckodriver
Selenium需要geckodriver才能与Firefox连接。下面是安装geckodriver的方法:
- 从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查看更多下载选项)
- 解压文件到你的下载文件夹
- 打开控制台并运行
sudo mv ~/Downloads/geckodriver /usr/bin
Mac OSX:
火狐?brew install geckodriver
铬吗?brew install chromedriver
在linux上,你可以先安装Homebrew,然后通过它安装brew install geckodriver
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
brew install geckodriver
或安装Nix
curl https://nixos.org/nix/install | sh
nix install geckodriver
但是在您的系统中添加另一个包管理器可能是一个坏主意。
Mac OSX:
火狐?brew install geckodriver
铬吗?brew install chromedriver
选择一个:
driver = webdriver.Firefox() # brew install geckodriver
driver = webdriver.Chrome() # brew install chromedriver
正确的方法是:
sudo apt install firefox-geckodriver
不需要手动安装
有一个python包可以自动安装它,不需要用户手动安装:https://pypi.org/project/geckodriver-autoinstaller/