使用 Chrome 驱动程序的 C# Selenium 代理身份验证

App*_*iah 2 proxy-authentication selenium-chromedriver

我正在使用以下代码作为代理。但是,当chrome启动时,会弹出弹窗,并且程序会被锁定。

public async void StartDriver(string proxy)
    {
        var proxys = new Proxy();
        ChromeDriverService chromeDriverService = ChromeDriverService.CreateDefaultService();
        chromeDriverService.HideCommandPromptWindow = true;
        ChromeOptions chromeOptions = new ChromeOptions();
        bool flag = !string.IsNullOrEmpty(proxy);
        if (flag)
        {
            proxys.Kind = ProxyKind.Manual;
            proxys.IsAutoDetect = false;
            proxys.SslProxy = proxy;
            chromeOptions.Proxy = proxys;
        }
        driver = new ChromeDriver(chromeDriverService, chromeOptions, TimeSpan.FromMinutes(10));
        await Task.Delay(2000);
    }
Run Code Online (Sandbox Code Playgroud)

我尝试过 http 或 ssl 同样...

StartDriver("88.55.66.77:8080");
Run Code Online (Sandbox Code Playgroud)

或者

StartDriver("http://username:pass@88.55.66.77:8080");
Run Code Online (Sandbox Code Playgroud)

我无法使用某种代理启动浏览器。

我想要一个可以自动输入用户名和密码的代码。我不需要 autoitx3.dll。

有没有办法启动安全代理?

谢谢。

Evg*_*nov 5

2021 年,您可以使用 Selenium 4.0 和BiDi API通过授权代理发出请求。例子:

var options = new ChromeOptions {AcceptInsecureCertificates = true};
options.AddArgument("headless");
options.Proxy = new Proxy {HttpProxy = "1.1.1.1:12345", SslProxy = "1.1.1.1:12345", Kind = ProxyKind.Manual};
//options.AddArguments($"--proxy-server=http://1.1.1.1:12345");
var driver = new ChromeDriver(ChromeDriverService.CreateDefaultService(), options, TimeSpan.FromMinutes(2));

NetworkAuthenticationHandler handler = new NetworkAuthenticationHandler()
{
    UriMatcher = d => true, //d.Host.Contains("your-host.com")
    Credentials = new PasswordCredentials("proxy_user", "proxy_pass")
};

var networkInterceptor = driver.Manage().Network;
networkInterceptor.AddAuthenticationHandler(handler);
networkInterceptor.StartMonitoring();

_driver.Navigate().GoToUrl("https://stackoverflow.com/");

networkInterceptor.StopMonitoring();
driver.Quit();

Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

7842 次

最近记录:

4 年,2 月 前