Cannot run Firefox (geckodriver) properly from PyCharm python console - python

So i use PyCharm 2018.2.3, geckodriver 0.20, Firefox 63.0 and Python 3.6.5 in it for my Selenium auto-tests.
What I try to do in Python Console to run the driver:
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True
wd = webdriver.Firefox(executable_path="C:\\Users\\user\\geckodriver.exe", firefox_profile=profile)
So the geckodriver runs in a new window. Then I ususally write
url = "https://website-address.com/"
wd.get(url)
But this time I get the message:
Previous command is still running. Please wait or press Ctrl+C in console to interrupt.
And then in like a couple of minutes geckodriver exit with these messages in log:
Traceback (most recent call last):
File "<input>", line 4, in <module>
File "C:\Users\user\project\venv\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 170, in __init__
keep_alive=True)
File "C:\Users\user\project\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 156, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Users\user\project\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 251, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Users\user\project\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute
self.error_handler.check_response(response)
File "C:\Users\user\project\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: newSession
Please help me to understand what is going on and how to fix it.

I was having the same problem and was fixed after I update the geckodriver to v0.21.0

So I've opened an issue on geckodriver github (https://github.com/mozilla/geckodriver/issues/1369), which was closed by a developer and I got an actual answer here in another similar issue: https://github.com/mozilla/geckodriver/issues/1305 - they've released a new version of geckodriver which fixed everything.
P.S. I'm almost absolutely sure I had no issues with my firewall.

Related

Selenium WebDriverException issue - python, cannot start browser both in Chrome/Firefox

I have the following script that makes use of selenium for authentication process.
I'm on Ubuntu 20.04 LTS, the computer was reformatted in the past few days, the same script worked before, from reading other threads I suspect that this has to do something with the root user/privileges.
I've tried both Firefox (geckodriver) and Chrome (chromedriver), here's what I did:
Chrome:
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options
import chromedriver_autoinstaller
chromedriver_path = chromedriver_autoinstaller.install()
browser = Chrome(executable_path=chromedriver_path)
The error:
Traceback (most recent call last):
File "/home/or/Desktop/Tutorials/Selenium/chrome.py", line 7, in <module>
browser = Chrome(executable_path=chromedriver_path)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__
RemoteWebDriver.__init__(
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Firefox:
from selenium.webdriver import Firefox
import geckodriver_autoinstaller
geckodriver_path = geckodriver_autoinstaller.install()
browser = Firefox(executable_path=geckodriver_path)
The error:
Traceback (most recent call last):
File "/home/or/Desktop/Tutorials/Selenium/firefox.py", line 7, in <module>
browser = Firefox(executable_path=geckodriver_path)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
RemoteWebDriver.__init__(
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/or/anaconda3/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 1
Also in the geckodriver.log:
1620916609933 mozrunner::runner INFO Running command: "/usr/bin/firefox" "--marionette" "-foreground" "-no-remote" "-profile" "/tmp/rust_mozprofileVlJnBC"
Error: no DISPLAY environment variable specified
I've made sure that my chrome is installed in the default folder, tried to use options such as --no-sandbox, tried to set binary location to where chrome is, did not work.
I've installed chrome in its default path on Linux.
I've tried with the --no sandbox option
I've tried specified the binary path by setting `options.binary_path = '/path/to/google-chrome'
I've installed Xvfb on my machine
I've tried downloading the chromedriver and geckodriver manually and adding them to the path (after placing in /usr/local/...)

selenium and google chrome driver wont run on linux python [duplicate]

This question already has answers here:
Selenium: WebDriverException:Chrome failed to start: crashed as google-chrome is no longer running so ChromeDriver is assuming that Chrome has crashed
(22 answers)
Closed 2 years ago.
I'm unable to get chromium to run when i put my code in theoretically it looks like it should work i even followed tutorials but i keep getting the same error message. This is the code that i put:
from selenium import webdriver
#chromedriver varible with exact location to where its saved
chromedriver = "/home/jackmiller/Downloads/chromedriver"
#varible of drive to run open up the chrome driver which is located
#on my machine as chromedriver varible chromedriver
driver = webdriver.Chrome(chromedriver)
#open this website
driver.get('https://youtube.com')
and when i run the code in terminal this is what it returns:
Traceback (most recent call last):
File "automation.py", line 8, in <module>
driver = webdriver.Chrome(chromedriver)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
It's not opening chromium at all
Have you tried: options.add_argument("--remote-debugging-port=9222")
From this bug report: https://github.com/SeleniumHQ/selenium/issues/6049
A workaround is to specify the remote debugging port as an argument for your ChromeOptions, something like: options.add_argument("--remote-debugging-port=9222"), and if you're running in a container make the driver headless like so options.headless = True, otherwise use something like pyvirtualdisplay for screenshots.
Are you tried make chromedriverfile executable?
sudo chmod a+x chromedriver

Unable to find a matching set of capabilities with GeckoDriver

I'm try to run the selenium python package in Debian 9 Stretch for web-scraping purposes; I installed such versions for the following softwares:
Python 2.7.13 (with Pycharm 2018.2 Community Edition)
Mozilla Firefox Quantum 61.0.1 (64 bit)
Selenium 3.14 (with GeckoDriver v0.21.0)
When I try to call the web driver by running:
driver = webdriver.Firefox(executable_path="/home/quant/Documenti/Executable/geckodriver")
I get the following error message in the python console:
Traceback (most recent call last): File "", line 1, in
File
"/home/quant/Scrivania/BettingDataDownload/venv/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py",
line 167, in init
keep_alive=True) File "/home/quant/Scrivania/BettingDataDownload/venv/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py",
line 156, in init
self.start_session(capabilities, browser_profile) File "/home/quant/Scrivania/BettingDataDownload/venv/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py",
line 251, in start_session
response = self.execute(Command.NEW_SESSION, parameters) File "/home/quant/Scrivania/BettingDataDownload/venv/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py",
line 320, in execute
self.error_handler.check_response(response) File "/home/quant/Scrivania/BettingDataDownload/venv/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py",
line 242, in check_response
raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: Unable
to find a matching set of capabilities
What's wrong?
The path of the executable is correct and the file is executable; moreover, by adding the firefox_binary option to the webdriver.Firefox function
as follows:
driver = webdriver.Firefox(firefox_binary="/snap/bin/firefox", executable_path="/home/quant/Documenti/Executable/geckodriver")
one gets the same error shown above.
Any help or suggestion will be appreciated.
Thanks all.

Selenium Firefox 56 webdriver via geckodriver results in error: Can not connect to the Service

I am using geckodriver for Firefox and I'm running Python 3 with Selenium. This is my code in the file script.py:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.google.com')
Once I run it with python3 script.py with my terminal, it launches Firefox but simply doesn't load the page, nor does it insert the link in the address bar. My geckodriver is installed at this location: /usr/local/bin/geckodriver.
After waiting for about a minute, I get the following error:
Traceback (most recent call last):
File "script.py", line 3, in <module>
browser = webdriver.Firefox()
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 154, in __init__
keep_alive=True)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 151, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 240, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: connection refused
I already searched a lot for fixes but none of them worked.
After I realized, I was using Firefox ESR instead of the normal one, I switched to the normal Firefox version and faced this problem:
Traceback (most recent call last):
File "script.py", line 3, in <module>
driver = webdriver.Firefox(executable_path=r'/root/Downloads/firefox-56.0.1/firefox/firefox')
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 144, in __init__
self.service.start()
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/common/service.py", line 102, in start
raise WebDriverException("Can not connect to the Service %s" % self.path)
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /root/Downloads/firefox-56.0.1/firefox/firefox
Which version of Selenium/Geckodriver/Browser are you using?
Anyway, do you set the executable_path:
driver = webdriver.Firefox(executable_path=r'pathTo/geckodriver')
?
EDIT
If you are using:
Selenium version = 3.6.0
Geckodriver version = 0.19.0
Firefox version = 52.4.0
Your problem is Firefox. From GeckoDriver releases, is recommended Firefox 55.0 (and greater).

python bindings for selenium returns in exception when initiating a Firefox webdriver object

When on windows I want to give a try with the webdriver extension for selenium, I get an error. I installed the python bindings like on the installation page. And then I try to to just the following:
from selenium import webdriver
browser = webdriver.Firefox()
Firefox (15.0) is opened and after that an exception occurs:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\selenium-2.32.0-py2.7.egg\selenium\webdriver\firefox\webdriver.py", line 62, in __init__
desired_capabilities=capabilities)
File "C:\Python27\lib\site-packages\selenium-2.32.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 72, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Python27\lib\site-packages\selenium-2.32.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 114, in start_session
'desiredCapabilities': desired_capabilities,
File "C:\Python27\lib\site-packages\selenium-2.32.0-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 165, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium-2.32.0-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 152, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: ''
I tried the same without webdriver, with the 1.0 api and then I can open Firefox and go to a specific page, but with the webdriver case I do not have any luck. Has anyone a clue what I do wrong ?
My OS is Windos 7, 64 bit version.
I also tried the same with the latest python bindings from version control, but that has the same error.

Categories