Тесты selenium в веб-приложении django не работают
Я провожу некоторые тесты на моем django webapp. Я устанавливаю веб-драйвер firefox(geckodriver) в /home/nicola/selenium_drivers/geckodriver
, устанавливаю разрешение на выполнение и так далее.
Вот мой тест
from django.test import TestCase
from django.test import LiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from pygiustizia.models import Users
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options
from datetime import datetime, date
class ViewsTopicsTestCase(LiveServerTestCase):
USERNAME = None
PASSWORD = None
BASE_URL = None
def setUp(self):
self.BASE_URL = self.live_server_url
self.USERNAME = 'nicolapaganotti1@gmail.com'
self.PASSWORD = '$2b$12$Xv0W8PCBnGTqNpo96gxS/e3olh685kMyxE2tFM028Ex7bz/7Y3nMS'
d = datetime(2022, 7, 20, 10, 10, 10, 342380)
options = Options()
#options.binary_location = '/usr/bin/firefox'
options.add_argument("binary_location=/usr/bin/firefox")
self.driver = webdriver.Firefox(options=options,executable_path=r'/home/nicola/selenium_drivers/geckodriver')
#self.driver = webdriver.Firefox()
# create user
self.user = Users.objects.create_user(username=self.USERNAME,
admin=1,
firstname="Nicola",
lastname="Paganotti",
created_at=d,
password=self.PASSWORD)
def tearDown(self):
self.driver.quit()
def test_login(self):
self.driver.get(self.BASE_URL + '/pygiustizia/login')
username = self.driver.find_element_by_name("username")
username.send_keys(self.USERNAME)
password = self.driver.find_element_by_name("password")
password.send_keys(self.PASSWORD)
btn_login = self.driver.find_element_by_name("submit_login")
# Login
btn_login.click()
# Check home page
WebDriverWait(self.driver, 5).until(
EC.presence_of_element_located((By.CSS_SELECTOR, '.selAddField')))
Когда я запускаю python3.9 manage.py test
В терминале я получаю следующий вывод:
Traceback (most recent call last):
File "/var/www/html/elastic_queries/python/djangosite/giustiziasite/pygiustizia/tests/test_views_topics.py", line 33, in setUp
self.driver = webdriver.Firefox(options=options,executable_path=r'/home/nicola/selenium_drivers/geckodriver')
File "/usr/local/lib/python3.9/dist-packages/selenium/webdriver/firefox/webdriver.py", line 177, in __init__
super().__init__(
File "/usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py", line 277, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py", line 370, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/webdriver.py", line 435, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.9/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status
Не понимаю, что-то вылетает в ошибку. Ошибка типовая:Сообщение: Процесс неожиданно закрыт со статусом. Как я могу ее решить?