2016-10-16 5 views
11

私が実行したときに、このエラーが出るパスにgeckodriverをUbuntuの中でセレンをインストールし、追加した後パイソン - UbuntuのOSErrorの中のセレン:[errnoを20]ないディレクトリ

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 

どうしたの?

EDIT:geckodriverの代わりにchromedriverを使用して解決しました。

+0

'driver = webdriver.Firefox()'行にgeckodriverのパスを指定してみましたか?ドライバが見つかりません。 –

+0

@THeeren driver = webdriver.Firefox( "/ home/User/Downloads/wires")のような意味ですか?私は試して、このエラー 'Traceback(最新の最後の呼び出し)を取得しようとしました: ファイル" "、firefox_profile = FirefoxProfile(firefox_profile) ファイル" /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox /firefox_profile.py "、行78、__init__ ignore = shutil.ignore_patterns(" parent.lock "、" lock "、" .parentlock ")) ファイル" /usr/lib/python2.7/shutil.py " 、行171、copytree内 名前= os.listdir(src) OSError:[Errno 20]ディレクトリではありません: '/ home/User/Downloads/wires' – User

+0

少なくとも、次のような完全なパスを指定する必要があります。ドライバの名前。私はクロムドライブを使用しています。 firefoxドライバの場合は、まずプロファイルを作成する必要があります。 –

答えて

0

問題は、「geckodriver」の名前を「wires」に変更したことです。

解決策は、 "geckodriver"を検索パスに追加することです。

23

同じ問題がありました。私のためにこれを修正するには、2つの方法がありました:

webdriverをして​​executable_pathの引数を追加します。

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

とその輸出を使用してgeckodriver含むフォルダを追加する2番目の方法(フォルダのみ、geckodriverない):

+0

おかげ@Poloqは..:これは奇妙です –

+0

... 'ドライバ= webdriver.Firefox(executable_path = '/パス/に/ geckodriver')私のために' 作品、私が使用していましたエクスポートオプション、それは動作しませんでしたが、Pythonのコードで 'executable_path'を指定した...任意のアイデアはなぜですか? –

+0

ありがとうございます。私はもっ​​と時間を無駄にした。ついにそれは働いた。 –

1

@Poloqによる回答に加えて、最も簡単な方法は、すでにPATHにあるディレクトリにgeckodriverバイナリを保存することです。

mv geckodriver /usr/local/bin 

このようにして、プロジェクトに追加の設定/構成が行われるのを避けることができます。

関連する問題