ubuntu python selenium 调用firefox找不到驱动解决

学习python-web TDD时遇到selenium 调用firefox问题,记录一下。

解决方法

从selenium 3.x开始,selunium调用firefox驱动名称改为’geckodriver’.
firefox 47 以上版本需要下载三方驱动放在系统环境变量中。
查看当前selenium和firefox版本信息,发现符合上述两个条件。

1
2
3
4
5
6
7
8
9
10
11
pip list
#result
Django (1.7)
pip (9.0.3)
pytz (2018.3)
selenium (3.11.0)
setuptools (38.5.2)
wheel (0.30.0)
apt list firefox
#result
firefox/xenial-security,now 59.0.2+build1-0ubuntu0.16.04.1 amd64 [installed,automatic]

下载并移动到环境变量路径中.到https://github.com/mozilla/geckodriver/releases
上找到对应的版本,下载。

1
2
tar -xzvf geckodriver-v0.20.0-linux64.tar.gz 
sudo mv geckodriver /usr/bin/

重启bash,进入virtual后,测试故障排除。

##附加收获 锁定firefox版本
查看可用版本

1
apt-cache show firefox | grep Version

结果

1
2
Version: 47.0+build3-0ubuntu0.16.04.1
Version: 45.0.2+build1-0ubuntu1

install

1
sudo apt-get install firefox=45.0.2+build1-0ubuntu1

keep this version

1
sudo apt-get install firefox=45.0.2+build1-0ubuntu1

解除锁定,升级版本

1
2
sudo apt-mark unhold firefox
sudo apt-get upgrade firefox

参考链接

https://www.zhihu.com/question/49568096
https://stackoverflow.com/questions/37761668/cant-open-browser-with-selenium-after-firefox-update