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/...)