Docker selenium не перенаправляет на другую страницу в тесте django

У меня есть некоторые проблемы с docker selenium. Например, я пробовал на локальном селениуме с помощью operadriver, так перенаправление на другую страницу, после отправки формы, работало. Я хочу увидеть этот результат и в django selenium test, но я просто получаю selenium.common.exceptions.TimeoutException: Message: в ожидании, когда url изменится. Вот мой тестовый код

import os
import socket
import shutil

# from pyvirtualdisplay import Display

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options

from django.test import LiveServerTestCase
from django.conf import settings

# Create your tests here.
class LandFormTest(LiveServerTestCase):
    host = socket.gethostbyname(socket.gethostname())

    def setUp(cls):
        selenium_url = 'http://selenium:4444/wd/hub'
        options = Options()
        options.add_argument('--no-sandbox')   
        options.add_argument('--headless')
        options.add_argument("--disable-dev-shm-usage")
        options.add_argument("--ignore-certificate-errors") 
        # options.add_argument("My user agent")
        options.add_argument(f"window-size=1920,1080")
        
        cls.driver = webdriver.Remote(
            command_executor=selenium_url,
            desired_capabilities=DesiredCapabilities.CHROME,
            options=options
        )

    def test_form(self):
        try:
            driver = self.driver
            domain = self.live_server_url.split('//')[1].split(':')[0]
            if not settings.BASE_DIR.joinpath(f'templates/lands/{domain}').is_dir():
                src = f'templates/lands/quantum.localhost'
                dest = f'templates/lands/{domain}'
                shutil.copytree(src, dest)
                
            driver.get(f'{self.live_server_url}/api/v1/test/?ai=2&gi=5')

            user_firstname = WebDriverWait(driver, 10).until(
                EC.presence_of_element_located((By.NAME, "firstname"))
            )
            current_url = driver.current_url
            
            user_firstname = driver.find_element(By.NAME, 'firstname')
            user_lastname = driver.find_element(By.NAME, 'lastname')
            user_email = driver.find_element(By.NAME, 'email')
            user_phone = driver.find_element(By.NAME, 'phone')

            user_firstname.send_keys('test')
            user_lastname.send_keys('test')
            user_email.send_keys('test@gmail.com')
            user_phone.send_keys('+(846)411-36-00')

            user_phone.submit()
            
            WebDriverWait(driver, 10).until(EC.url_changes(current_url))
            print(driver.current_url)
            print(driver.page_source)
            assert 'Hello World' in driver.page_source
        except Exception as e:
            raise(e)

    def tearDown(self):
        self.driver.quit()

Мой /api/v1/test/ url получает static и template в папке по имени домена, поэтому я копирую папку по умолчанию "quantum.localhost" и переименовываю ее в ip докера. Основная проблема в том, что локально работает с драйвером, но не с docker и django. Хочу заметить, что я также пытался использовать firefox selenium. Спасибо за помощь!

Вернуться на верх