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