Скрипт Selenium на JavaScript отправляет команды WebDriver удалённому серверу ещё до того, как браузер этого сервера сможет куда-либо перейти. Если соединение команд должно проходить через HTTP-прокси, настройте прокси WebDriver в Builder:

const { Builder, Browser } = require("selenium-webdriver");

const driver = await new Builder()
  .forBrowser(Browser.CHROME)
  .usingServer(gridUrl)
  .usingWebDriverProxy("http://proxy.example.net:8080")
  .build();

gridUrl — это настоящий сервер Selenium или размещённая конечная точка WebDriver. Для общедоступной конечной точки, где этот маршрут разрешён, список HTTP-прокси предоставляет кандидатов для usingWebDriverProxy. Запустите фрагмент внутри асинхронной функции CommonJS. Завершите драйвер, когда тестовый сеанс закончится.

usingWebDriverProxy управляет HTTP-соединениями привязки JavaScript. Он не задаёт возможность прокси в Chrome и не добавляет аргумент запуска Chrome.

Если трафику браузера тоже нужен посредник, укажите нужные параметры Chrome отдельно. Этот браузер работает на удалённой машине, поэтому его конечная точка прокси должна быть доступна там. Адрес loopback на машине скрипта не становится автоматически службой loopback, доступной удалённому браузеру.

Определите, происходит ли сбой при создании сеанса WebDriver или при переходе по веб-сайту. Эти два сбоя могут затрагивать разных сетевых клиентов и разные политики прокси.

Похожие статьи