You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Selenium 4.0用Chrome Driver BiDi API配置认证代理时卡顿如何解决

解决方案

问题根因

  • 未在ChromeOptions中显式开启BiDi协议支持,Selenium的Network系列BiDi API依赖BiDi协议通道,未开启时调用StartMonitoring()会阻塞网络请求,导致页面无法跳转。
  • 监控启停时机错误,导航执行后立刻停止监控,代理身份认证的请求还未完成就被中断。

修正后的完整代码

var options = new ChromeOptions();
// 关键:显式启用BiDi协议支持
options.UseBiDi = true;
options.Proxy = new Proxy {HttpProxy = "1.1.1.1:12345", SslProxy = "1.1.1.1:12345", Kind = ProxyKind.Manual};
var driver = new ChromeDriver(ChromeDriverService.CreateDefaultService(), options, TimeSpan.FromMinutes(2));

NetworkAuthenticationHandler handler = new NetworkAuthenticationHandler()
{
    // 可按需缩小匹配范围,避免不必要的认证尝试,示例为全局匹配
    UriMatcher = d => true,
    Credentials = new PasswordCredentials("proxy_user", "proxy_pass")
};

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

driver.Navigate().GoToUrl("https://stackoverflow.com/");
// 等待页面加载完成,可根据实际场景替换为显式等待目标元素加载的逻辑
Thread.Sleep(3000);

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

额外注意事项

  • 保证Selenium WebDriver版本 ≥ 4.0,Chrome与ChromeDriver版本 ≥ 110,该版本区间对BiDi API的支持更稳定。
  • 不需要全局认证的场景可调整UriMatcher的匹配逻辑,仅对目标域名的请求触发认证,降低性能开销。

内容的提问来源于stack exchange,提问作者yazilimprogram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:15:03