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를 생략합니다. 이 경우 원격 WebDriver 서비스가 공개되어 있고 공용 프록시를 통한 액세스가 허용되면 HTTP 프록시 목록이 후보를 제공합니다.

RemoteWebDriver를 생성하기 전에 실행기의 속성을 설정합니다. 드라이버를 만들면 원격 세션 교환이 시작됩니다. 실행기는 처음 필요할 때 기본 HTTP 클라이언트를 만듭니다. 나중에 속성을 변경하는 것은 해당 클라이언트가 이미 사용하는 처리기를 안정적으로 교체하는 방법이 아닙니다.

이 경로는 WebDriver 명령을 실행기에서 원격 서비스로 전달합니다. 브라우저 자체의 웹사이트 트래픽은 별도의 연결입니다. 여기에도 프록시가 필요하면 브라우저 머신에서 도달할 수 있는 엔드포인트를 사용하여 브라우저 기능을 통해 구성합니다.

프록시 자격 증명은 중개자에 대해 인증됩니다. 원격 서비스 자격 증명은 여전히 공급자가 지원하는 로그인 또는 기능 구성에 속합니다.

관련 글