我在 Python 中使用 Selenium,尝试运行 webdriver 函数:
default_browser = webdriver.Firefox()
此异常:
WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
geckodriver
在此站点:https://github.com/mozilla/geckodriver
但是如何在 Ubuntu 16.04 中安装以及我可以解决这个问题吗?
答案1
步骤如下:
前往geckodriver 发布页面. 找到适合您平台的最新版本的驱动程序并下载。例如:
wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz
使用以下命令提取文件:
tar -xvzf geckodriver*
使其可执行:
chmod +x geckodriver
将驱动程序添加到您的 PATH 以便其他工具可以找到它:
export PATH=$PATH:/path-to-extracted-file/.
有很多方法可以做到这一点。上面的方法在 Ubuntu 16.10 64 位上对我有效。
答案2
在 Ubuntu 上安装 geckodriver 的手动步骤:
- 访问https://github.com/mozilla/geckodriver/releases
- 下载最新版本的“geckodriver-vX.XX.X-linux64.tar.gz”
- 解压 tarball (
tar -xvzf geckodriver-vX.XX.X-linux64.tar.gz
) - 授予
geckodriver
(chmod +x geckodriver
)可执行权限 - 将二进制文件移动
geckodriver
到/usr/local/bin
系统 PATH 上的任何位置。
在 Ubuntu 上安装 geckodriver 的脚本:
#!/bin/bash
INSTALL_DIR="/usr/local/bin"
json=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest)
url=$(echo "$json" | jq -r '.assets[].browser_download_url | select(contains("linux64") and endswith("gz"))')
curl -s -L "$url" | tar -xz
chmod +x geckodriver
sudo mv geckodriver "$INSTALL_DIR"
echo "installed geckodriver binary in $INSTALL_DIR"
答案3
可以在 sysadmin 脚本(bash/ansible)中使用的 Webdriver 安装(静默模式)。
## Geckodriver
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
sudo sh -c 'tar -x geckodriver -zf geckodriver-v0.23.0-linux64.tar.gz -O > /usr/bin/geckodriver'
sudo chmod +x /usr/bin/geckodriver
rm geckodriver-v0.23.0-linux64.tar.gz
## Chromedriver
wget https://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo chmod +x chromedriver
sudo mv chromedriver /usr/bin/
rm chromedriver_linux64.zip
答案4
如果您使用 ubuntu 2.04 之前的命令行:
sudo apt-get install firefox-geckodriver
感谢@countermeasure的评论:
显然安装 Firefox 也会安装 Gecko 驱动程序
sudo apt install firefox