Selenium PermissionError: Errno 13 Permission denied: geckodriver.log
Situace: Během spouštění skriptu nástroje pro automatické testování webových aplikací Selenium obdržíme chybu PermissionError: [Errno 13] Permission denied: 'geckodriver.log'. Co s tím?
Celá chyba:
Chyba znamená, že právě spouštěná relace Selenium nemá oprávnění vytvořit soubor geckodriver.log. Soubor geckodriver.log se vytváří v adresáři, kde se právě nacházíte. V tomto případě je zvolen adresář /root a skript pro Selenium je spouštěn pod uživatelem user, který nemá oprávnění to tohoto adresáře zapisovat.
Řešením je přesunout se např. do home adresáře uživatele user
Celá chyba:
[user@selenium-centos root]$export DISPLAY=:10; /home/selenium.sh
Traceback (most recent call last):
File "/home/selenium.py", line 170, in
driver = webdriver.Firefox(profile)
File "/usr/lib/python3.4/site-packages/selenium/webdriver/firefox/webdriver.py", line 141, in __init__
self.service = Service(executable_path, log_path=log_path)
File "/usr/lib/python3.4/site-packages/selenium/webdriver/firefox/service.py", line 44, in __init__
log_file = open(log_path, "a+") if log_path is not None and log_path != "" else None
PermissionError: [Errno 13] Permission denied: 'geckodriver.log'
ODPOVĚĎ
Chyba znamená, že právě spouštěná relace Selenium nemá oprávnění vytvořit soubor geckodriver.log. Soubor geckodriver.log se vytváří v adresáři, kde se právě nacházíte. V tomto případě je zvolen adresář /root a skript pro Selenium je spouštěn pod uživatelem user, který nemá oprávnění to tohoto adresáře zapisovat.
Řešením je přesunout se např. do home adresáře uživatele user
cd /home/user
a pak spustit skript export DISPLAY=:10; /home/selenium.sh
.