Selenium Webdriver - 如何将代理设置为Firefox的“自动检测”
问题描述:
我的脚本在Chrome和IE上运行良好,但由于firefox为其代理设置设置了“手动”,因此无法在Firefox上启动。我怎样才能将其设置为“自动检测”?Selenium Webdriver - 如何将代理设置为Firefox的“自动检测”
C#中的源代码。
谢谢
答
感谢您的帮助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);
默认情况下,是什么在你的浏览器FF代理设置?那是当你手动打开它时? – 2012-03-31 14:08:52
我的普通浏览器的默认设置是“自动检测”。但是,由于Selenium webdriver发布了一个精简版本,因此在这一瞬间它被设置为“手动”。 – automationguy 2012-04-01 19:15:59
好的,您是否已经尝试使用代理设置为自动检测的自定义配置文件? – 2012-04-02 14:59:10