У меня есть функциональное приложение, работающее в докере через порт 3000
.У меня есть тесты селена, которые работают, когда я устанавливаю свой хост на http://localhost:3000
.Я создал контейнер для запуска тестов на селен, и он не работает со следующей ошибкой:
WebDriverError:Reachederrorpage:about:neterror?e=nssFailure2&u=https://app:3000/&c=UTF-8&f=regular&d=An error occurred during a connection to app:3000.
SSL received a record that exceeded the maximum permissible length.
Error code: <a id="errorCode" title="SSL_ERROR_RX_RECORD_TOO_LONG">SSL_ERROR_RX_RECORD_TOO_LONG</a>
Фрагмент моего docker-compose.yml
app:
build:
context: .
dockerfile: Dockerfile.dev
volumes:
- ./:/usr/src/app/
ports:
- "3000:3000"
- "3001:3001"
networks:
tests:
selenium-tester:
build:
context: .
dockerfile: Dockerfile.selenium.tests
volumes:
- ./:/usr/src/app/
- /dev/shm:/dev/shm
depends_on:
- app
networks:
tests:
Я заменил хост на http://app:3000
, ноFirefox, кажется, хочет перенаправить этот http на https (который не работает).И, наконец, я создаю свой драйвер следующим образом:
const ffoptions = new firefox.Options()
.headless()
.setPreference('browser.urlbar.autoFill', 'false'); // test to disable auto https redirect… not working obviously
const driver = Builder()
.setFirefoxOptions(ffoptions)
.forBrowser('firefox')
.build();
Когда я вручную связываюсь с http://app:3000
, используя curl
внутри контейнера с тестером селена, он работает как положено, я получаю свою домашнюю страницу.
У меня не хватает идей сейчас, и даже разложение моей проблемы, чтобы написать этот вопрос, не принесло мне новых