#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 плохих шлюза. Мне бы очень хотелось получить какое-либо представление о том, почему это так. Я не могу понять, почему приведенный выше код не работает.