Когда тестовому процессу на C# нужен прямой прокси для доступа к удалённой службе Selenium, подключите System.Net.WebProxy к его исполнителю HTTP-команд:

using System;
using System.Net;
using OpenQA.Selenium.Remote;

var commandProxy = new WebProxy("http://proxy.example:8080")
{
    Credentials = proxyCredentials
};
var executor = new HttpCommandExecutor(
    remoteWebDriverUri, TimeSpan.FromSeconds(60))
{
    Proxy = commandProxy
};

using var driver = new RemoteWebDriver(
    executor, browserOptions.ToCapabilities());

proxyCredentials — это предназначенная учётная запись прокси, remoteWebDriverUri — настроенный URI удалённой службы, а browserOptions содержит существующие возможности браузера и поставщика. Не указывайте Credentials, если посредник не требует аутентификации. В этом случае список HTTP-прокси предоставляет кандидатов, если удалённая служба WebDriver общедоступна и разрешён доступ через публичные прокси.

Задайте свойство исполнителя до создания RemoteWebDriver. Создание драйвера запускает обмен удалённого сеанса; исполнитель создаёт свой базовый HTTP-клиент при первой необходимости. Более позднее изменение свойства не является надёжным способом заменить обработчик, который этот клиент уже использует.

Этот маршрут передаёт команды WebDriver от запускающего процесса к удалённой службе. Собственный веб-трафик браузера — это отдельное соединение. Если ему тоже нужен прокси, настройте его через возможности браузера, используя конечную точку, доступную с машины браузера.

Учётные данные прокси аутентифицируются у посредника. Учётные данные удалённой службы по-прежнему относятся к поддерживаемой поставщиком конфигурации входа или возможностей.

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