selenium.common.exceptions.WebDriverException: Message: connection refused
Solution 1
Check your geckodriver.log
file (should be in the same directory as python file)
If it says Error: GDK_BACKEND does not match available displays
then install pyvirtualdisplay:
pip install pyvirtualdisplay selenium
You might need xvfb too:
sudo apt-get install xvfb # Debian
sudo yum install Xvfb # Fedora
Then try adding this code:
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
Full example:
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(800, 600))
display.start()
browser = webdriver.Firefox()
browser.get('http://www.python.org')
browser.close()
Solution 2
As mentioned by @kervvv this issue is probably related to an older version of Firefox than what the version of selenium
and/or geckodriver
expect(s) or need(s). It should be noted, as far as I can tell, that the specific error message from selenium is somewhat generic or vague; so, it doesn't explicitly show why the error occurs.
In case users are here looking for help while using an older version of Firefox, including the Extended Support Release (ESR), the following solution should work just fine.
- Visit the Firefox download page to download a Beta, Nightly, or Developer version of Firefox.
- Extract the package into an arbitrary location on your filesystem (anywhere you want)
-
Specify the
FirefoxBinary
within your code or script to point to the downloaded location.from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary binary = FirefoxBinary('/home/username/firefox/firefox') driver = webdriver.Firefox(firefox_binary=binary) driver.get(url)
That works for me on Gentoo, for example, where the version of geckodriver
(0.20.0) and selenium
(3.11.0) are the latest available upstream, while Firefox (ESR) is at version 52.
Solution 3
Had the same issue. Thought it was proxy or port related (to no avail) but what solved my problem was just simply updating Firefox. I was running 52.0.xxx
and updated to 57.0.2
. Link here.
Solution 4
Had this problem as well. Needed to set the DISPLAY. For me Xvfb frame buffer is running on local machine at :99 so.
$ export DISPLAY=:99
Solution 5
First thing to do: Update Firefox and make sure you have the latest version of geckodriver installed (https://github.com/mozilla/geckodriver/releases)
Related videos on Youtube
leven
Updated on December 04, 2020Comments
-
leven over 3 years
Here is my code:
from selenium import webdriver browser = webdriver.Firefox() browser.get('http://www.python.org') browser.close()
It launched the firefox browser when I ran this script, but the page is blank, then the command line shows the error message:
Traceback (most recent call last): File "ad.py", line 3, in <module> browser = webdriver.Firefox() File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 76, in __init__ keep_alive=True) File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__ self.start_session(desired_capabilities, browser_profile) File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session response = self.execute(Command.NEW_SESSION, capabilities) File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute self.error_handler.check_response(response) File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: connection refused
My python vesion is 2.7.3 and the selenium version is selenium-3.0.0.b3.egg-info
Please, how do I solve the problem ...
-
exhuma over 7 yearsI can confirm that using a virtual display like this fixed the problem for me.
-
JMG almost 7 yearsworked for me but need to use Xvfp on Centos (capital X)
-
Mario Palumbo almost 3 years0.29.1 have the same problem.