Hay alrededor de 100 publicaciones sobre el mismo problema, pero ninguna de ellas parece funcionar para mí, por lo tanto, vuelvo a preguntar. Estoy intentando iniciar un navegador Firefox con Python y Selenium y aparece el siguiente error:

WebDriverException : Mensaje: Parece que el navegador salió antes de que pudiéramos conectarnos. Si especificó un log_file en el constructor FirefoxBinary, verifíquelo para obtener más detalles.

Intenté todas y cada una de las respuestas en la web, pero nada parece funcionar.

Este es mi código:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX
caps["marionette"] = False

binary = FirefoxBinary('d:\\Desktop\\IEDriver\\geckodriver.exe')

options = Options()
options.set_headless(headless=True)
driver = webdriver.Firefox(firefox_binary=binary, firefox_options=options, executable_path=r'd:\\Desktop\\IEDriver\\geckodriver.exe')
driver.get("http://google.com/")
print ("Headless Firefox Initialized")
driver.quit()

Si configuro caps["marionette"] = True, entonces el error que obtengo es

SessionNotCreatedException : Mensaje: no se puede encontrar un conjunto de capacidades que coincida

Versiones de software que estoy ejecutando:

Firefox : 62.0 (64 bits)

Selenio : 3.14.0

Gecko : 0.21.0

Python : 3

SO : Windows 8.1 de 64 bits

Cualquier ayuda sería muy apreciada.

EDITAR: He desinstalado y reinstalado Firefox pero no funcionó. También intenté instalar Firefox 61.0.2, todavía no tuve suerte.

2
Anish 13 sep. 2018 a las 21:54

3 respuestas

binary = r'C:\Program Files\Mozilla Firefox\firefox.exe'

Options = Options () options.binary = binary browser = webdriver.Firefox (firefox_options = options, executetable_path = r "C: \ Drivers \ geckodriver.exe")

-1
Lokesh 12 feb. 2020 a las 14:01

Después de probar casi todas las respuestas en diferentes foros, una simple prueba automática resolvió el problema y, por ejemplo, necesita tener Python, Firefox Browser y Geckodriver en 62 bits o 32 bits. La falta de coincidencia en esto causó el problema en mi caso.

Después de asegurarse de que está utilizando la misma versión de bit para los 3 componentes, simplemente use las siguientes líneas para ejecutar Firefox:

ffPath = "C:\\Drivers\\geckodriver.exe"
os.environ["webdriver.firefox.driver"] = ffPath
driver = webdriver.Firefox(executable_path=ffPath)
driver.get(url)
0
Rishab 14 may. 2020 a las 16:18

Asegúrese (especialmente en Windows (Win 10)) de que su navegador y controlador (python / C / java / perl / etc) sea todo x64 o win32, Microsoft ya no se conectará entre ellos.

Entonces, si estás tratando de controlar un navegador de 64 bits (lo que se descargará de forma predeterminada desde Firefox) desde una python x32 bit, se cerrará antes de que puedas conectarte ... ve e instala una versión win32 de firefox para que ocurra la magia

0
Bob Sharpie 6 oct. 2019 a las 20:15