当前位置: 首页>>技术教程>>正文


Python-Ubuntu OS中的Selenium错误:[Errno 20]不是目录

, ,

问题描述

在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

这样,您可以避免在项目中进行其他设置/配置,但不利之处是在不同系统上进行部署时需要执行其他步骤。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10454.html,未经允许,请勿转载。