Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
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 ...
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()
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.
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
Most probably because the "latest" version of your geckodriver is not able to communicate with your "slightly older" firefox.
The easiest way to fix this would be to try out different older versions of geckodriver.
Run the following command to find the current version of your geckodriver
geckodriver --version
If it shows the version as 19 or above, execute following steps to use geckodriver version 17(Works 90% of times)
Your existing geckodriver most typically may be placed in /usr/local/bin
when u installed it earlier. First delete this by running sudo rm -r /usr/local/bin/geckodriver
Download version 17 of geckodriver from this link.
Move the downloaded file(geckodriver-v0.17.0-arm7hf.tar.gz
) from your Downloads
folder into your home
directory
Unpack the file
tar -xzvf geckodriver-v0.17.0-arm7hf.tar.gz
This will create a folder called "geckodriver" in your home directory
Move/Copy this extracted "geckodriver" into /usr/local/bin/
sudo cp geckodriver /usr/local/bin/
sudo reboot
I got the same error. After updating the geckodriver vresion to geckodriver 0.24.0 ( 2019-01-28) worked fine for me.
Download source :https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux32.tar.gz
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.