2016-10-20 3 views
3

Webクローラでリクエストを使用してログインできるように、私はセレンでFirefoxのWebdriverを実行します。私は、このスタックオーバーフローソリューションlinkからアイデアを得ました。なぜなら、要求を伴うログインはいくつかの理由で機能しないからです。アクセス許可が拒否されたため、ブラウザを起動できないというエラーが表示されます。ここに私のコードは次のとおりです。Python Selenium Webdriverブラウザにスターを付けることができませんでした:許可が拒否されました

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

binary=FirefoxBinary("/path/to/firefox") 
fp=webdriver.FirefoxProfile("path/to/extra/profile") 


url="www.python.org" 
driver = webdriver.Firefox(fp, firefox_binary=binary, executable_path="path/to/geckodriver.exe") 
driver.get(url) 

エラーは以下の通りです:

selenium.common.exceptions.WebDriverException: Message: Failed to start browser: 
permission denied 

誰も助けてくださいことはできますか?私は何年もインターネットで検索してきましたが、何も見つけることができません...ありがとう!!!

+0

'Profile'を使わずに' driver = webdriver.Firefox() 'だけを試してみませんか?同じ問題? – Andersson

+0

@Andersson同じ問題! – Tessa

+0

シンプルなソリューションは、chromeriverをダウンロードできます:http://chromedriver.storage.googleapis.com/index.html?path=2.24/解凍してPythonのスクリプトフォルダに入れ、driver = webdriver.Chrome()を使用します。これはあなたの目的がページをスクラップし、WebアプリケーションのUIをテストしないためです。 – thebadguy

答えて

9

私はFirefox用にSelenium 3を動作させようとしていて、別のエラーメッセージに続いていました。 geckodriverをダウンロードしてシステムパスに追加した後、この最後のエラーはあなたが見ているのと同じ権限拒否の問題でした。ちょっとした検索と一緒につなぎ合わせた後、最終的にはfirefox.exeをパスに追加していました。ここで

は完全なスクリプトです:

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe') 
driver = webdriver.Firefox(firefox_binary=binary) 

driver.get('http://www.google.com') 

が、これはあまりにもあなたのために働くことを願っています。

+2

ありがとうございました。私はまだ 'ブラウザの起動に失敗しました、見つからなかったというエラーを受け取りました。 Webdriver firefox'。 これを修正するために、私はfirefoxを更新しなければならなかった。それから私はエラー 'WebDriverException:Message: 'handshake'の' marionetteProtocol 'フィールドがありません。これを修正するには、 'binary = FirefoxBinary(r'C:\ Program Files(x86)\ Mozilla Firefox \ firefox.exe ')行の" firefox.exe "の" f "を" F "に変更しました。 – Viragos

1

だけでWindows上のパスにスラッシュバックダブル使用:MacのOS X上で

binary = FirefoxBinary(r'C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe') 
2

、あなたは実際のFirefoxのビンだけでなくFirefox.appを指すようにする必要があります。少なくともそれは私のために働いた。

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 
binary = FirefoxBinary('/Users/YOUR_USERNAME/Applications/Firefox.app/Contents/MacOS/firefox-bin') 
driver = webdriver.Firefox(firefox_binary=binary) 
関連する問題