Селен сбой в Docker из-за контекста просмотра был отброшен - PullRequest
0 голосов
/ 08 января 2020

Как вы запускаете тесты на основе Selenium внутри Docker?

Я пытаюсь получить некоторые тесты Python + Selenium, которые используют Firefox и Geckodriver, для запуска под Ubuntu 18 Docker image.

Мой docker -compose.yml файл просто:

version: "3.5"
services:
  app_test:
    build:
      context: .
      shm_size: '4gb'
      mem_limit: 4096MB
      dockerfile: Dockerfile.test

К сожалению, большинство тестов завершаются с ошибками, такими как:

selenium.common.exceptions.NoSuchWindowException: Message: Browsing context has been discarded

Несколько Результаты поиска, которые я могу найти с упоминанием этой ошибки, указывают на то, что это связано с нехваткой памяти. Сервер, на котором я запускаю тесты, имеет 8 ГБ общей памяти, хотя я также тестировал на компьютере с 32 ГБ и получил ту же ошибку.

Я также добавил вызов, чтобы напечатать вывод top перед каждый тест, и он показывает, что использование памяти практически не используется, поэтому я не уверен, что вызвало бы тест sh из-за нехватки памяти.

В некоторых статьях предлагалось добавить строки shm_size и mem_limit, но они не имели никакого эффекта.

Я также пробовал разные версии Firefox, от самой последней версии 71 до более старых выпусков ESR, чтобы исключить ошибку из-за несовместимых версий Firefox + Selenium + Geckodriver. В противном случае я следую этой таблице совместимости .

Что вызывает эту ошибку и как ее исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...