16

I want to run a firefox webdriver with selenium so that I can spare a login with requests in a web crawler. I got the idea from this stackoverflow solution link, since the login with requests does not work for several reasons. I always get an error that the browser can't be started because the permission was denied. Here is my code:

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) 

The error is the following:

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

Can anyone please help? I have been searching for years on the internet but can't find anything... Thanks!!!

9
  • Could you try just driver = webdriver.Firefox() without using Profile? Same problem? Commented Oct 20, 2016 at 14:08
  • @Andersson Same Problem! Commented Oct 20, 2016 at 14:38
  • simple solution could be download chromedriver: chromedriver.storage.googleapis.com/index.html?path=2.24 unzip it and put in scripts folder of python and use driver = webdriver.Chrome()..I am saying this because your aim is to scrap the page & not testing the UI of Web App Commented Oct 20, 2016 at 14:39
  • @thebadguy Does the chromedriver also provide the opportunity to keep logged into a homepage, which is what I am trying to accomplish with the firefox profile? Commented Oct 20, 2016 at 14:40
  • @Tessa..yes...hope this stackoverflow.com/a/31063104/2425654 will help you Commented Oct 20, 2016 at 14:45

5 Answers 5

12

I'm trying to get Selenium 3 working for Firefox and was running into one error msg after another. After downloading geckodriver and adding it to the system path, this last error was the same permission denied issue you are seeing. After quite a bit of searching around and piecing things together, what finally worked was adding the firefox.exe to the path as well.

Here's the full script:

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') 

Hope this will work for you too.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks this helped. I still received the error Failed to start browser entitiy, not found. Webdriver firefox. To fix this I had to update firefox. Then I got the error WebDriverException: Message: Missing 'marionetteProtocol' field in handshake. To fix this I changed the "f" to capital "F" in "firefox.exe" in the line binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\firefox.exe')
I still had the permission error after trying this solution. I tried Viragos's suggestion of changing the "firefox.exe" to "Firefox.exe" in the FirefoxBinary() constructor. Now I get another webdriver exception: "Socket timeout reading Marionette handshake data: An existing connection was forcibly closed by the remote host. (os error 10054)."
3

On Mac OS X, you need to point to the actual Firefox bin rather than just Firefox.app. At least that worked for me.

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) 

Comments

1

Just use double back slash in the path on Windows:

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

Comments

0

On Windows 10 with Selenium 3.14.1, the below code worked for me.

binary = FirefoxBinary(r'C:\\Program Files\\Mozilla Firefox\\firefox.exe') driver = webdriver.Firefox(firefox_binary=binary, executable_path='C:\\Tools\\Selenium\\geckodriver.exe') driver.get("https://www.python.org") 

Hope this helps..

Comments

0

Update Firefox browser on your machine and download latest gecko driver. That worked for me well.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.