In a previous post (enter link description here) the following code (by DebanjanB)
# install firefox, geckodriver, and selenium
!apt-get update
!pip install selenium
!apt install firefox-geckodriver
!cp /usr/lib/geckodriver /usr/bin
!cp /usr/lib/firefox /usr/bin
from selenium import webdriver
binary = '/usr/bin/firefox'
options = webdriver.FirefoxOptions()
options.binary = binary
options.add_argument('start-maximized')
options.add_argument('--headless')
browser = webdriver.Firefox(firefox_options=options, executable_path='/usr/bin/geckodriver')
browser.get('http://google.com/')
which is correct, caused a version problem. I'm not an expert in Ubuntu.
I use Google Colaboratory, Python3.6, Selenium3.14.
WebDriverException Traceback (most recent call last)
<ipython-input-2-f7828de5f77c> in <module>()
4 options.add_argument('start-maximized')
5 options.add_argument('--headless')
----> 6 browser = webdriver.Firefox(options=options, executable_path='/usr/bin/geckodriver')
7 driver.get("https://www.google.com")
8 print(driver.page_source)
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/firefox/webdriver.py in __init__(self, firefox_profile, firefox_binary, timeout, capabilities, proxy, executable_path, options, service_log_path, firefox_options, service_args, desired_capabilities, log_path, keep_alive)
172 command_executor=executor,
173 desired_capabilities=capabilities,
--> 174 keep_alive=True)
175
176 # Selenium remote
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py in __init__(self, command_executor, desired_capabilities, browser_profile, proxy, keep_alive, file_detector, options)
155 warnings.warn("Please use FirefoxOptions to set browser profile",
156 DeprecationWarning, stacklevel=2)
--> 157 self.start_session(capabilities, browser_profile)
158 self._switch_to = SwitchTo(self)
159 self._mobile = Mobile(self)
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py in start_session(self, capabilities, browser_profile)
250 parameters = {"capabilities": w3c_caps,
251 "desiredCapabilities": capabilities}
--> 252 response = self.execute(Command.NEW_SESSION, parameters)
253 if 'sessionId' not in response:
254 response = response['value']
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
319 response = self.command_executor.execute(driver_command, params)
320 if response:
--> 321 self.error_handler.check_response(response)
322 response['value'] = self._unwrap_value(
323 response.get('value', None))
/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
240 alert_text = value['alert'].get('text')
241 raise exception_class(message, screen, stacktrace, alert_text)
--> 242 raise exception_class(message, screen, stacktrace)
243
244 def _value_or_default(self, obj, key, default):
WebDriverException: Message: invalid argument: can't kill an exited process
I searched the internet and only found that this is a version conflict between Firefox and Geckodriver. But nobody gives the solution how to choose the compatible versions. This is my problem. Any help is appreciated.
After all the discussion within the comments it seems you erred the command to download GeckoDriver and possibly some issues with downloading and/or installing Firefox.
GeckoDriver
The command to install geckodriver within ubuntu was error prone:
Here are the detailed steps:
Browse to the geckodriver releases page. Checkout the compatible version of GeckoDriver for your platform and download it as follows:
Extract the file with:
Make it executable:
Add the driver to your PATH so other tools can find it:
Firefox
The latest version of Firefox is always available as a security updates in all supported releases of Ubuntu and a normal update will install it. You need to enable the security or you need to update the repositories (e. g.
Software & Updates
->Updates
). You need to enable theSecurity
by default but better to check if the package manager doesn't updates Firefox by default.You can find the detailed steps in:
Update
Selenium Client Driver page mentions:
Supported Python Versions:
But the list on selenium 3.141.0 page includes only:
So possibly Python 3.7 is still not supported and you may have to downgrade to a relevant version.
Outro
SessionNotCreatedException: Message: Unable to create new service: ChromeDriverService with Selenium 3.14.0 and Python 3.7.3