问题描述
在Ubuntu中安装Selenium并将geckodriver添加到路径后,运行时出现此错误
from selenium import webdriver
driver = webdriver.Firefox()
错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 135, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/service.py", line 64, in start
stdout=self.log_file, stderr=self.log_file)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 20] Not a directory
这是怎么回事?
编辑:使用chromedriver而不是geckodriver解决。
最佳思路
有同样的问题。有两种方法可以为我解决此问题:
在网络驱动程序中添加executable_path参数:
driver = webdriver.Firefox(executable_path='/path/to/geckodriver')
第二种方法是使用export添加包含geckodriver的文件夹(仅文件夹,而不是geckodriver):
$ export PATH=$PATH:/path/to/
次佳思路
除了@Poloq的答案之外,最简单的方法是将geckodriver
二进制文件保存在PATH
中已经存在的目录中。
mv geckodriver /usr/local/bin
这样,您可以避免在项目中进行其他设置/配置,但不利之处是在不同系统上进行部署时需要执行其他步骤。