nixbox
@nixbox

Как запустить selenium из python-flask приложения?

Приветствую!
Сломал голову над следующей проблемой:

Использую Pyhon+Flask+Gunicorn+Nginx+Selenium.

Если запускать тесты Selenium напрямую из консоли, то все работает нормально, но пытаясь запустить тестирование внутри Flask приложения начинаются ошибки, в частности, Selenium не видит geckodriver, если он лежит прямо в папке с тестами внутри Flask приложения, указываю напрямую:
driver = webdriver.Firefox("/user/test/flask_app/app_files/selenuim_test", capabilities=firefox_capabilities, options=options)

Но получаю ошибку:
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.


Если расположить geckodriver вне папки с Flask ("/user/test/") то начинает видеть, но возникают другие ошибки:
shutil.Error: [('/user/test/flask_app/flask_app.sock', '/tmp/tmp1vkuyshz/webdriver-py-profilecopy/run/flask_app.sock'', "[Errno 6] No such device or address: '/user/test/flask_app/flask_app.sock'")

Т.е. тут уже ошибки как я понимаю с Gunicorn.

Пожалуйста подскажите в чем может быть проблема? С правами файлов? В виртуальном окружении?
Как можно запускать Selenuim внутри Flask? И почему может быть не виден geckodriver?

Уже все перепробовал, но не сдвинулся :(
  • Вопрос задан
  • 431 просмотр
Решения вопроса 1
nixbox
@nixbox Автор вопроса
Нашел наконец ответ, подсказанный на другом сайте.
в Gunicorn .service файле в Environment=
необходимо добавить в конце /env/bin :/usr/bin:/bin

как показано на примере:
Environment="PATH=/home/username/env/bin:/usr/bin:/bin"


Т.к. необходимые для работы функции вроде mkdir, readlink итд находятся в /bin PATH
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы