Selenium Webdriver - 如何将代理设置为Firefox的“自动检测”

Selenium Webdriver - 如何将代理设置为Firefox的“自动检测”

问题描述:

我的脚本在Chrome和IE上运行良好,但由于firefox为其代理设置设置了“手动”,因此无法在Firefox上启动。我怎样才能将其设置为“自动检测”?Selenium Webdriver - 如何将代理设置为Firefox的“自动检测”

C#中的源代码。

谢谢

+0

默认情况下,是什么在你的浏览器FF代理设置?那是当你手动打开它时? – 2012-03-31 14:08:52

+0

我的普通浏览器的默认设置是“自动检测”。但是,由于Selenium webdriver发布了一个精简版本,因此在这一瞬间它被设置为“手动”。 – automationguy 2012-04-01 19:15:59

+0

好的,您是否已经尝试使用代理设置为自动检测的自定义配置文件? – 2012-04-02 14:59:10

感谢您的帮助AJ。

我用下面的代码来解决我的问题:

FirefoxBinary binary = new FirefoxBinary("C:\\Program Files\\Mozilla Firefox\\firefox.exe"); 
FirefoxProfile profile = new FirefoxProfile("C:\\test profile\\");   driver = new FirefoxDriver(binary, profile); 

我只是复制我的Mozilla配置文件的内容"c:\test profile\"。这使我可以通过Selenium运行测试,但也可以打开其他Firefox实例。

您不必将firefox设置为自动检测。去http://wpad/wpad.dat,它会返回设置代理的JavaScript文件。你可以在里面找到代理地址。 然后使用下面的代码这样的伎俩

FirefoxProfile profile = new FirefoxProfile(); 
      String PROXY = "xx.xx.xx.xx:8080"; 
      OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy(); 
      proxy.HttpProxy=PROXY; 
      proxy.FtpProxy=PROXY; 
      proxy.SslProxy=PROXY; 
      profile.SetProxyPreferences(proxy); 
      FirefoxDriver driver = new FirefoxDriver(profile); 

你只需要这个源添加到您的程序:

FirefoxProfile profile = new FirefoxProfile(); 
String PROXY = "your URL WEB proxy:YourPort"; 
OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy(); 
proxy.HttpProxy = PROXY; 
proxy.FtpProxy = PROXY; 
proxy.SslProxy = PROXY; 
profile.SetProxyPreferences(proxy);