Después de tanto batallar ya dimos con la solución de este conflicto que agunos lectores de nuestro sitio web presentan. Si quieres compartir alguna información no dudes en aportar tu conocimiento.
Solución:
selenium.common.exceptions.WebDriverException: Mensaje: el ejecutable ‘geckodriver’ debe estar en PATH.
En primer lugar, deberá descargar el último geckodriver ejecutable desde aquí para ejecutar la última versión de Firefox con Selenium.
En realidad, los enlaces del cliente de Selenium intentan localizar el geckodriver
ejecutable del sistema PATH
. Deberá agregar el directorio que contiene el ejecutable a la ruta del sistema.
-
En los sistemas Unix, puede hacer lo siguiente para agregarlo a la ruta de búsqueda de su sistema, si está utilizando un shell compatible con Bash:
export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
-
En Windows necesitará actualizar el Variable del sistema de ruta para agregar la ruta completa del directorio al geckodriver ejecutable manualmente o línea de comando** (no olvide reiniciar su sistema después de agregar el geckodriver ejecutable en la RUTA del sistema para que surta efecto)**. El principio es el mismo que en Unix.
Ahora puede ejecutar su código de la misma manera que lo está haciendo a continuación: –
from selenium import webdriver
browser = webdriver.Firefox()
selenium.common.exceptions.WebDriverException: Mensaje: Se esperaba la ubicación binaria del navegador, pero no se pudo encontrar el binario en la ubicación predeterminada, no se proporcionó la capacidad ‘moz:firefoxOptions.binary’ y no se estableció un indicador binario en la línea de comando
La excepción indica claramente que instaló Firefox en otra ubicación mientras Selenium intenta encontrar Firefox y ejecutarlo desde la ubicación predeterminada, pero no pudo encontrarlo. Debe proporcionar explícitamente la ubicación binaria instalada de Firefox para iniciar Firefox como se muestra a continuación: –
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)
https://github.com/mozilla/geckodriver/releases
Para ventanas:
Descargue el archivo de GitHub, extráigalo y péguelo en el archivo de Python. Funcionó para mí.
https://github.com/mozilla/geckodriver/releases
Para mí, mi ruta de acceso es:
C:UsersMYUSERNAMEAppDataLocalProgramsPythonPython39
Esto lo resolvió para mí.
from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'yourpathgeckodriver.exe')
driver.get('http://inventwithpython.com')
estos pasos resuelto para mí en Ubuntu y Firefox 50.
-
Descargar geckodriver
-
Copie geckodriver a la carpeta
/usr/local/bin
Tú haces no necesita agregar:
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)