Настройка заголовков SeleniumWire как для SeleniumWire, так и для веб-страницы, работающей внутри контейнеров docker

#python #docker #selenium #proxy

Вопрос:

Я пытаюсь получить доступ к веб-странице, на которой используется аутентификация по заголовку. Поскольку Selenium напрямую не поддерживает заголовки, я пытаюсь использовать SeleniumWire. Однако я сталкиваюсь с проблемами. Я запускаю свои тесты селена с помощью браузера внутри контейнера docker. Ниже приведена моя попытка:

 def interceptor(request):
    request.headers['USERNAME'] = "test"
    request.headers['ID'] = "tester-dev"


sw_options = {
    'auto_config': False,
    'addr': '127.0.0.1',
    'port': 9666,
}

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(
    '--proxy-server=http://host.docker.internal:9666')
chrome_options.add_argument('--ignore-certificate-errors')

driver = webdriver.Remote(
    desired_capabilities=chrome_options.to_capabilities(),
    seleniumwire_options=sw_options
)
driver.request_interceptor = interceptor

driver.get(
    "http://host.docker.internal:9555/index/")
for request in driver.requests:
    if request.response:
        print(
            request.url,
            request.response.status_code
        )
driver.close()
 

Я создаю прокси-сервер на 127.0.0.1:9666, когда пытаюсь получить доступ к своей веб-странице http://localhost:9555/index/ который запущен из того же docker-compose, что и тест selenium, я получаю 502 плохих шлюза. Мне бы очень хотелось получить какое-либо представление о том, почему это так. Я не могу понять, почему приведенный выше код не работает.