0

I'm trying to submit some requests on a web page from my web application. Because that web page is rather complex I decided not to send HTTP requests directly but rather use Selenium. I've deployed Selenium, firefox and geckodriver. All of that is running on a virtual Ubuntu.

geckodriver is located in bin folder of web app's venv:

-rwxr-xr-x 1 ralfeus ralfeus 7.0M Jul 28 23:45 bin/geckodriver*

The code to run it is here:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.firefox.options import Options

options = Options()
options.set_headless(headless=True)
browser = webdriver.Firefox(firefox_options=options)

When I run a script directly from a shell everything works fine. I can create an instance of webdriver, can open a page.

uWSGI application runs as 'www-data' user When I run it as a part of uWSGI I'm getting an error:

Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:     browser = webdriver.Firefox(firefox_options=options, service_log_path='./firefox.log')
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:   File "/var/www/order/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:     keep_alive=True)
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:   File "/var/www/order/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:     self.start_session(capabilities, browser_profile)
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:   File "/var/www/order/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:     response = self.execute(Command.NEW_SESSION, parameters)
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:   File "/var/www/order/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:     self.error_handler.check_response(response)
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:   File "/var/www/order/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]:     raise exception_class(message, screen, stacktrace)
Oct 07 08:58:28 web-1.contaboserver.net uwsgi[17558]: selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities

As same code works fine from a shell, I've ruled out path and binaries issues. What else could it be?

Ralfeus
  • 845
  • 9
  • 31

0 Answers0