Python 3.5 – “El ejecutable de Geckodriver debe estar en PATH”

Agregué geckodriver.exe a PATH como se puede ver en esta imagen y luego reinicié mi computadora. Pero el error sigue apareciendo.

Aquí está mi código:

from selenium import webdriver driver = webdriver.Firefox() driver.get('https://stackoverflow.com') 

¿Tienes pistas sobre lo que hice mal?

No veo ningún error significativo en su bloque de código. Mientras trabaja con Selenium 3.4.3, geckodriver v0.17.0, Mozilla Firefox 53.0 con Python 3.6.1, puede considerar descargar el geckodriver y guardarlo en cualquier lugar de su máquina y configurar la ruta absoluta del geckodriver a través de executable_path .

Se debe tener en cuenta que el enlace actual de Selenium-Python es inestable con geckodriver y parece ser específico de la architecture. Puedes encontrar la discusión de github y fusionar aquí. Por lo tanto, es posible que también deba pasar la ruta absoluta del binario de firefox_binary como argumento de firefox_binary al inicializar el controlador web.

Aquí está su propio bloque de código que se ejecuta bien en mi final:

 from selenium import webdriver from selenium.webdriver.firefox.firefox_binary import FirefoxBinary binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe') driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe") driver.get('https://stackoverflow.com') 

Hay tres formas de resolver este error.

  1. Descargue el controlador gecko y manténgalo en el directorio donde se encuentra su script de prueba de Python.
  2. Establezca la variable de entorno “webdriver.gecko.driver” con la ruta del controlador como valor. os.environ["webdriver.gecko.driver"]="c:\geckodriver.exe"

  3. Pase la ruta ejecutable al constructor como driver = WebDriver.Firefox("path of executable")

¿Está configurando las capacidades correctamente? En caso de que esté configurando la capacidad de versión, verifique que sea correcta o elimínela por completo. Estoy hablando de lo siguiente:

 capabilities.SetCapability("version", "50.0");