Pytest зависает на неопределенное время при выполнении тестов после обновления образа Selenium

День назад selenium обновил свои standalone-images (https://hub.docker.com/search?q=selenium&type=image) и в то же время selenium 4.0.0 был выпущен на pypi (https://pypi.org/project/selenium/#history)

Я использую pytest и selenium для тестирования фронтенда моего приложения django, и все работало отлично до вчерашнего дня, когда вышел релиз. Теперь происходит следующее: когда я запускаю pytest (в PyCharm), тест просто работает бесконечно, не выдавая ошибку или что-то еще. Он просто не прекращает выполняться.

Я очень уверен, что проблема в релизе, потому что когда я вытаскиваю образ chrome-debug, который был обновлен 15 дней назад (по сравнению с chrome-standalone вчера), мой тестовый набор снова работает нормально.

Я также попробовал вытащить изображение standalone-firefox, чтобы проверить, может ли это быть проблемой только с изображением standalone-chrome, но я получаю тот же результат.

Сейчас, конечно, промежуточным решением является использование образа chrome-debug, но я боюсь, что они скоро обновят и его, что снова сломает мой тест-комплект, к тому же отдельные образы более легковесны.

Я совершенно не понимаю, что происходит.

Минимальный пример моего набора тестов:

Docker-compose:

  selenium:
    image: selenium/standalone-chrome
    ports:
      - 4444:4444
      - 5900:5900

Docker-file;

FROM python:3.9-alpine3.14
....
....

Test-config:

def pytest_configure(config):
    """Adjust socket configuration for live_server fixture."""

    config.option.liveserver = socket.gethostbyname(socket.gethostname())

Тест:


@pytest.fixture()
def browser():
    browser = webdriver.Remote(
        command_executor="http://selenium:4444/wd/hub",
        desired_capabilities=DesiredCapabilities.CHROME,
    )
    browser.implicitly_wait(5)
    yield browser
    browser.close()



def test_visit_page(browser, live_server):
    result = browser.get(live_server.url)
    assert "This text is in my page source" in result.page_source

Я надеялся (без злого умысла ;)), что кто-нибудь еще столкнулся с такой же проблемой и, возможно, нашел способ ее решить? На seleniums github для этого не открыто ни одного вопроса. Или, может быть, кто-то может помочь мне? Прошу прощения, что не могу опубликовать ошибки или стектрейс, я бы очень хотел получить его сам. Любая помощь будет оценена по достоинству, спасибо!

А если я запускаю это не из PyCharm, а из обычного терминала, я получаю:

Начинается сеанс тестирования (платформа: linux, Python 3.9.7, pytest 6.2.5, pytest-sugar 0.9.4) django: настройки: config.settings.test (из ini) Matplotlib: 3.4.3 Freetype: 2.6.1 rootdir: /app, configfile: pytest.ini плагины: django-4.4.0, Faker-9.3.1, cov-3.0.0, mpl-0.13, sugar-0.9.4 сбор ...

И он зависает... Возможно, он загружает эти огромные пакеты= Но они уже должны быть установлены в среде docker....

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