2015-01-01 54 views
4

我在Chrome浏览器中使用使用C#for Automation的Selenium Webdriver。 我需要检查我的网页是否存在于某些区域(某些IP范围)。所以我必须在我的Chrome浏览器中设置代理。我尝试了下面的代码。代理正在设置,但我得到一个错误。有人能帮助我吗?在Selenium中为Chrome驱动程序设置代理

 ChromeOptions options = new ChromeOptions(); 

     options.AddArguments("--proxy-server=XXX.XXX.XXX.XXX"); 

     IWebDriver Driver = new ChromeDriver(options); 

     Driver.Navigate().GoToUrl("myUrlGoesHere"); 

当我运行这段代码,我得到了我的Chrome浏览器的以下信息:我试图启用代理服务器选项,但“更改代理服务器设置”选项被禁用。

*无法连接到代理服务器

代理服务器是充当您的计算机与其他服务器之间的中介的服务器。目前,您的系统已配置为使用代理,但Google Chrome无法连接到该代理。 如果您使用代理服务器... 请检查您的代理设置,或联系您的网络管理员以确保代理服务器正在工作。如果您不相信您应该使用代理服务器:请转到Chrome菜单>设置>显示高级设置...>更改代理设置...>局域网设置,然后取消选择“为您的局域网使用代理服务器”。 错误代码:ERR_PROXY_CONNECTION_FAILED *

+0

如果您可以在Chrome代理中看到XXX.XXX.XXX.XXX设置,那么Selenium没有问题;这是因为XXX.XXX.XXX.XXX没有启动或拒绝您的连接。你应该确保XXX.XXX.XXX.XXX先工作。 –

回答

4

如果您的代理需要用户登录,您可以设置与登录用户/密码信息的代理如下:

options.AddArguments("--proxy-server=http://user:[email protected]:8080"); 
+4

这不适用于硒铬驱动程序 –

+2

有没有人有铬驱动程序的解决方案? – whitenexx

5

我使用的NuGet包硒2.50。 1与此:

ChromeOptions options = new ChromeOptions(); 
proxy = new Proxy(); 
proxy.Kind = ProxyKind.Manual; 
proxy.IsAutoDetect = false; 
proxy.HttpProxy = 
proxy.SslProxy = "127.0.0.1:3330"; 
options.Proxy = proxy; 
options.AddArgument("ignore-certificate-errors"); 
var chromedriver = new ChromeDriver(options); 
+0

这不适用于代理用户名/密码 – Toolkit

+1

@Toolkit您可以尝试使用'SocksUserName'和'SocksPassword'属性 –

相关问题