Доступ к веб-сайту через прокси-сервер с помощью Google Chrome без использования Selenium, который работает при использовании Fiddler - PullRequest
0 голосов
/ 29 мая 2019

У меня проблемы с запуском теста на селен с использованием Google Chrome без заголовка, доступа к сайту, доступному только через прокси-сервер.

TLDR: Chrome без монитора не может получить доступ к сайтам через прокси-сервересли не запущен fiddler

При попытке диагностировать проблему, я обнаружил странный набор обстоятельств, заставляющих ее работать:

  • Internet Explorer настроен на использование прокси иДоступ к сайту возможен только при включенном прокси.Без набора прокси-сервера Internet Explorer подключение к сайту вообще отсутствует.
  • Chrome использует настройки прокси-сервера Internet Explorer, поэтому доступ к сайту с помощью Chrome зависит от установленного прокси-сервера Internet Explorer.
  • Пока установлен прокси-сервер Internet Explorer:

    • Когда тесты Selenium выполняются с Chrome (не без заголовка), доступ к сайту осуществляется успешно.
    • Когдатесты Selenium выполняются с Chrome (без заголовка), сайт не доступен (время ожидания истекло).
    • Если конфигурация прокси-сервера передана в Chrome * (без заголовка), сайт не будет успешно доступен.
    • Если конфигурация прокси-сервера не передана в chrome (без заголовка), сайт не будет успешно доступен.
  • Если мы установим fiddler на сервер, настройки прокси-сервера будут заменены прокси-сервером Fiddler, и внезапно тесты селена, выполняющиеся через хром (без заголовка), будут успешно работать.И:

    • Если конфигурация прокси-сервера передана в chrome * (без заголовка), доступ к сайту осуществляется успешно.
    • Если конфигурация прокси-сервера не пройдена черезв chrome (без заголовка) доступ к сайту выполнен успешно.

    • Конфигурация прокси-сервера, переданная в chrome с использованием chrome_options.add_argument.

Примечания: - Расширения chrome не включены.

  • Сайт использует HTTP, поэтому нет никаких проблем, вызванных сертификатами

  • Доступ к веб-сайту по маршруту, для которого не требуется прокси-сервер, например, с наших рабочих столов, работает Chrome Headless.

  • Я пробовал это на двух разных серверах, сидентичное поведение.

  • Прокси-сервер не требует аутентификации.

Таким образом, Chrome Headless не может получить доступ к сайтам через прокси-сервер, если только fiddlerбежит.У кого-нибудь есть идея, почему это может быть, и как я могу заставить это работать без запуска Fiddler?

1 Ответ

0 голосов
/ 24 июня 2019

Я использовал сетевой монитор, чтобы увидеть, что вызовы безглавого Chrome разрешаются на IP-адрес веб-сайта, а не на прокси-сервер, поэтому казалось, что безголовый Chrome не использует прокси-сервер по умолчанию, как и предполагалось.

В конце концов, настройка тестов nunit для передачи прокси-сервера в безголовый Chrome с использованием аргумента --proxy-server сделала свое дело.

...