WebDriverException: Mensaje: newSession con GeckoDriver Firefox v65 y Selenium a través de Python 3.7

Estoy tratando de usar Python 3.7 + Selenium + Geckodriver + Firefox v65.0 para el desguace. Se abre una nueva ventana, pero Firefox no envía la respuesta correcta sobre la sesión a Python y se bloquea después de 30 segundos con un error:

WebDriverException: Message: newSession 

En caso de que si bajara la versión de Firefox a la versión 60.0.2, todo funcione correctamente con todas las versiones Geckodriver v0.22, 0.23 y 0.24.

La versión 63.0, 65.0 y 66beta de Firefox no funciona, incluso si pruebo diferentes geckodrivers de 0.22 a 0.24.

Sistema : Windowns 7 x64 + Firefox 65.0 64bit, el más reciente de selenium, geckodriver v0.24.0.

Mi código:

 from selenium import webdriver from selenium.common.exceptions import NoSuchElementException with webdriver.Firefox() as driver: driver.get("http://google.com") 

Error de descripción:

 WebDriverException Traceback (most recent call last)  in  ----> 1 with webdriver.Firefox() as driver: 2 driver.get("http://google.com") C:\ProgramData\Anaconda3\lib\site-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 C:\ProgramData\Anaconda3\lib\site-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) C:\ProgramData\Anaconda3\lib\site-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'] C:\ProgramData\Anaconda3\lib\site-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)) C:\ProgramData\Anaconda3\lib\site-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: newSession 

Queston: ¿Cómo es posible hacer que Firefox 65 funcione con Selenium? Tal vez en las versiones más recientes de Firefox (61.0+) debo especificar algunas opciones durante la conexión?

No estoy seguro de dónde van las cosas mal, pero parece que hay una mezcla con varias versiones binarias. Sin embargo estoy usando la siguiente configuración:

  • Python: 3.6.1

     C:\Users\user_name>python Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> 
  • Selenio: 3.141.0

     C:\Users\user_name>pip show -V selenium Name: selenium Version: 3.141.0 Summary: Python bindings for Selenium Home-page: https://github.com/SeleniumHQ/selenium/ Author: UNKNOWN Author-email: UNKNOWN License: Apache 2.0 Location: c:\python\lib\site-packages Requires: urllib3 Required-by: 
  • GeckoDriver: 0.24.0

     C:\Utility\BrowserDrivers>geckodriver.exe -V geckodriver 0.24.0 ( 2019-01-28) The source code of this program is available from testing/geckodriver in https://hg.mozilla.org/mozilla-central. This program is subject to the terms of the Mozilla Public License 2.0. You can obtain a copy of the license at https://mozilla.org/MPL/2.0/. 
  • Firefox: Mozilla Firefox 65.0

     C:\Program Files\Mozilla Firefox>firefox -v |more Mozilla Firefox 65.0 

Tomé su propio código y lo ejecuté agregando el argumento executable_path siguiente manera:

  • Bloque de código:

     from selenium import webdriver with webdriver.Firefox(executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe') as driver: driver.get("http://google.com") print("Page Title is : %s" %driver.title) driver.quit() 
  • Salida de consola:

     Page Title is : Google 

Como regla general, siempre siga la matriz de configuración de la tabla de compatibilidad del navegador GeckoDriver , Selenium y Firefox

support_platforms_geckodriver_24