Python - Ubuntu中的Selenium OSError:[Errno 20]不是目录

时间:2016-10-16 17:58:18

标签: python selenium ubuntu

在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解决。

5 个答案:

答案 0 :(得分:32)

有同样的问题。有两种方法可以解决这个问题:

在webdriver中添加executable_path arg:

driver = webdriver.Firefox(executable_path='/path/to/geckodriver')

第二种方式是使用export添加包含geckodriver的文件夹(仅限文件夹,而不是geckodriver):

$ export PATH=$PATH:/path/to/

答案 1 :(得分:3)

除了@Poloq的回答之外,最简单的方法是将geckodriver二进制文件保存在PATH中已有的目录中。

mv geckodriver /usr/local/bin

通过这种方式,您可以避免项目中的其他设置/配置,但在部署到不同系统时需要执行额外步骤。

答案 2 :(得分:1)

问题是你重命名了&#34; geckodriver&#34;到&#34;电线&#34;。

解决方案是添加&#34; geckodriver&#34;搜索路径然后它应该工作。

答案 3 :(得分:0)

除了提供的答案之外,还有一个选项可以将驱动程序复制到sudo cp geckodriver /usr/bin

func encrypt(data []byte, passphrase string) []byte {
block, _ := aes.NewCipher([]byte(createHash(passphrase)))
gcm, err := cipher.NewGCM(block)
if err != nil {
    panic(err.Error())
}
nonce := make([]byte, gcm.NonceSize())
if _, err = io.ReadFull(rand.Reader, nonce); err != nil {
    panic(err.Error())
}
ciphertext := gcm.Seal(nonce, nonce, data, nil)
return ciphertext
}

答案 4 :(得分:0)

硒可从Ubuntu 16.04及更高版本中的默认Ubuntu存储库中获得。要安装硒,请打开终端并输入:

sudo apt install python-selenium # for Python 2.x

和/或

sudo apt install python3-selenium # for Python 3.x  

然后输入python来启动Python解释器,并从selenium import webdriver进行如下操作:

$ python  
>>> from selenium import webdriver

假设〜/ .local / bin路径位于您的执行路径中,以下是安装名为geckodriver的Firefox Webdriver的方法:

wget https://github.com/mozilla/geckodriver/releases/download/v0.20.1/geckodriver-v0.20.1-linux64.tar.gz
tar xvfz geckodriver-v0.20.1-linux64.tar.gz
mv geckodriver ~/.local/bin

来源: https://askubuntu.com/questions/1041541/i-want-to-install-selenium-webdriver-in-my-ubuntu-16-04-system-for-python