У меня возникли проблемы с запуском тестового прогона селена, использованием Google Chrome без головы, доступом к сайту, который доступен только через прокси-сервер.
TLDR: Chrome без головы не может получить доступ к сайтам через прокси-сервер, если не запущен fiddler
Пытаясь диагностировать проблему, я обнаружил странный набор обстоятельств, из-за которых она работает:
Пока установлен прокси-сервер Internet Explorer:
Если мы устанавливаем fiddler на сервер, настройки прокси заменяются на прокси Fiddler, и вдруг тесты селена, запущенные через chrome (headless), работают успешно. А также:
Если конфигурация прокси-сервера не передается в chrome (безголовый), доступ к сайту осуществляется успешно.
Конфигурация прокси-сервера передается в хром с помощью chrome_options.add_argument.
Примечания: - Нет включенных расширений Chrome.
Веб-сайт использует HTTP, поэтому проблем с сертификатами нет.
Доступ к веб-сайту через маршрут, который не требует прокси-сервера, например, с наших рабочих столов, работает безголовый хром.
Я пробовал это на двух разных серверах с одинаковым поведением.
Прокси-сервер не требует аутентификации.
Таким образом, хром без головы не может получить доступ к сайтам через прокси-сервер, если не запущен скрипач. Кто-нибудь знает, почему это может быть, и как я могу заставить его работать без запуска Fiddler?
Я использовал сетевой монитор, чтобы увидеть, что вызовы безголового хрома разрешаются на IP-адрес веб-сайта, а не на адрес прокси-сервера, поэтому похоже, что безголовый хром не использует прокси-сервер по умолчанию, как предполагалось.
В конце концов, настройка тестов nunit для передачи прокси-сервера в безголовый хром с использованием аргумента --proxy-server сделала свое дело.
Используйте Wireshark для прослушивания прокси-соединения, когда оно не работает, и сравните его с анализом через Fiddler, который работает.