Permiso denegado: ‘geckodriver.log’ mientras se ejecuta Selenium webdriver en python

He instalado Firefox y Selenium en centos. Estoy usando Xvfb y pyvirtualdisplay para abrir el navegador.

Cuando bash ejecutar Selenium Webdriver, puedo abrir una nueva pantalla pero tan pronto como lo hago

browser = webdriver.Firefox()

Me sale el error:

 File "", line 1, in  File "/usr/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 134, in __init__ self.service = Service(executable_path, log_path=log_path) File "/usr/lib/python2.7/site-packages/selenium/webdriver/firefox/service.py", line 45, in __init__ log_file = open(log_path, "a+") IOError: [Errno 13] Permission denied: 'geckodriver.log' 

¿Alguna pista sobre qué está mal aquí?

EDIT: Después de superar el error de permiso, estoy recibiendo

Message: 'geckodriver' executable needs to be in PATH

Aparentemente esto puede provenir de una incompatibilidad entre tu Firefox y tu Selenium. Intente pip install --upgrade selenium , y si el error persiste, intente descargar una versión diferente de Firefox o del controlador gecko .

Respecto al mensaje:

 'geckodriver' executable needs to be in PATH 

Podría establecer la ruta del controlador en el script:

 ff_profile_dir = "/usr/local/selenium/webdriver/firefox" ff_profile = selenium.webdriver.FirefoxProfile(profile_directory=ff_profile_dir) driver = selenium.webdriver.Firefox(ff_profile) 

O, según esta respuesta , puede ejecutar, en sistemas Unix, en un shell compatible con bash:

 export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step 

En Windows, deberá actualizar la variable del sistema Ruta para agregar la ruta del directorio completo al geckodriver ejecutable manualmente o a la línea de comandos (no olvide reiniciar su sistema después de agregar el geckodriver ejecutable en la RUTA del sistema para que tenga efecto). El principio es el mismo que en Unix.

Estaba teniendo el mismo problema. Intenté usar la respuesta de Ivan Chaer, pero no funcionó. Probé un montón de otras cosas hasta que finalmente encontré una solución funcional. Todo el tiempo que había estado tratando de ejecutar Selenium, había estado usando la shell interactiva. Cuando intenté poner el código en un script y luego ejecutarlo, todo funcionó bien.

Luego me di cuenta de que un archivo llamado “geckodriver.log” se había creado en el mismo directorio que el script. Eso me dio una idea. Creé un archivo “geckodriver.log” en C: \ Archivos de progtwig \ Python36 y luego usando Selenium con Firefox ya no se producían errores.

La siguiente solución funcionó para mí. En mi caso, estaba iniciando mi script Python desde la aplicación Notepad++ Windows. Mi geckodriver.exe estaba en la RUTA y se encontraba en mi carpeta C:\Python 27 . También se proporcionó una ruta completa a Firefox. Selenium, geckodriver y Firefox estaban en las últimas versiones.

Resultó que el archivo geckodriver.log se estaba creando aquí:

 C:\Program Files (x86)\Notepad++\geckodriver.log 

Encontré esto ejecutando Notepad++ como administrador. Entonces fue capaz de crear el archivo donde quería. Luego localicé el archivo y cambié los permisos de archivo a acceso completo para la cuenta de usuario normal en Windows (se configuró para ser solo de lectura).

Después de hacer esto, pude ejecutar Notepad ++ normalmente y el error desapareció.

Tuve exactamente el mismo problema. Fui a la página pypi del selenium . En la sección Controladores, hablan sobre geckodriver y puedes encontrar el enlace al ejecutable de geckodriver que se adapta a tu navegador y sistema operativo.

Acabo de descargarlo, lo descomprimí y luego coloqué el archivo geckodriver.exe en C: \ Archivos de progtwig \ Python37 (Python37 ya está en mi RUTA). Y ahora funciona bien.

en mi caso, geckodriver.log se creó en la carpeta de secuencias de comandos, pero por usuario root, de una ejecución anterior, se ejecutaron de nuevo como un usuario normal. Python no tuvo acceso al archivo y falló