工作机用Selenium C#初始化ChromeDriver遇407代理认证错误求配置
代理环境下Selenium ChromeDriver 407认证错误的解决配置
方法一:显式配置带认证的代理
直接在ChromeOptions中指定代理服务器地址、端口及认证信息,代码示例如下:
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Proxy; class Program { static void Main() { // 配置代理核心信息 var proxy = new Proxy(); proxy.HttpProxy = "http://代理地址:端口"; proxy.SslProxy = "http://代理地址:端口"; // HTTPS请求复用该代理 proxy.Username = "你的代理用户名"; proxy.Password = "你的代理密码"; // 绑定代理到Chrome选项 var options = new ChromeOptions(); options.Proxy = proxy; // 初始化驱动并访问目标页面 var driver = new ChromeDriver(options); driver.Navigate().GoToUrl("https://lambdatest.github.io/sample-todo-app/"); // 业务操作完成后关闭驱动 driver.Quit(); } }
方法二:使用系统代理并自动完成NTLM认证
若机器已预设系统代理,需ChromeDriver自动使用当前用户凭据完成企业常用的NTLM认证,可添加以下Chrome启动参数:
using OpenQA.Selenium; using OpenQA.Selenium.Chrome; class Program { static void Main() { var options = new ChromeOptions(); // 启用系统代理自动检测 options.AddArgument("--proxy-auto-detect"); // 允许对所有域自动进行NTLM认证 options.AddArgument("--auth-server-whitelist=*"); // 允许自动协商并发送NTLM凭据 options.AddArgument("--auth-negotiate-delegate-whitelist=*"); var driver = new ChromeDriver(options); driver.Navigate().GoToUrl("https://lambdatest.github.io/sample-todo-app/"); driver.Quit(); } }
关键注意事项
- 若直接配置用户名密码无效,大概率是Chrome的安全限制导致,此时可采用代理自动配置脚本(PAC),将认证逻辑嵌入PAC脚本后,通过
proxy.ProxyAutoConfigUrl指定PAC文件地址。 - 先通过浏览器手动配置代理测试,确认代理地址、端口、账号密码能正常访问目标站点,排除代理本身的问题。
- 企业内网环境中,需联系IT部门确认代理的认证方式(NTLM/基本认证)、允许的访问域名范围,避免配置不符合要求。
内容的提问来源于stack exchange,提问作者Franco47
相关产品推荐
相关产品推荐

