Reputation: 631
I try to run a selenium program on a Linux machine.But I got the exceptions:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 154, in __init__
keep_alive=True)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 151, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 240, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute
self.error_handler.check_response(response)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status: 1
How can I fix the exceptions? Thanks for helping.
Upvotes: 58
Views: 77214
Reputation: 5698
This error can come up when you are trying to run the browser in non-headless mode on a box that doesn't have a display (like an Ubuntu server).
You can check if that's the cause of your Process unexpectedly closed with status: 1
error by looking at the geckodriver.log
file that is usually left in your working directory after you run your script, it should have a line like:
Error: GDK_BACKEND does not match available displays
If you see that line in the geckodriver.log
then you'll need to switch your script to run Firefox in headless mode:
from selenium import webdriver
from selenium.webdriver import FirefoxOptions
opts = FirefoxOptions()
opts.add_argument("--headless")
browser = webdriver.Firefox(options=opts)
browser.get('http://example.com')
Upvotes: 129
Reputation: 67
To me this seems like a problem with the Firefox WebDriver. I tested the Chrome driver and driver manager (on Selenium 4.x), and I find that they work. However, the service is buggy so stick to paths. That is, use the driver manager without spawning a service. Explicitly state "executable_path" option else you will encounter the "paths are deprecated" error.
Upvotes: 0
Reputation: 9112
It's hard to be sure without more information, but this typically happens when the browser version you use is not compatible with the underlying webdriver you use.
Make sure that they are compatible, for example by upgrading your webdriver, and this issue should be solved.
Upvotes: 4