如何使用Java在Selenium WebDriver中设置自动检测代理设置

时间:2013-01-09 13:01:10

标签: firefox proxy selenium-webdriver autoproxy

您好我正在编写Selenium WebDriver Java代码/脚本。

public static WebDriver dr =null;
public static EventFiringWebDriver driver=null;

dr = new FirefoxDriver();

driver = new EventFiringWebDriver(dr);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

因此Firefox浏览器正在打开,但代理设置正在停止。

如果是手动,我去了工具 - >选项 - 设置 - >我已经给了 自动检测此网络的代理设置
它正在发挥作用。

但每当我通过脚本打开时,我认为新的个人资料正在打开。这就是我使用脚本为此网络设置自动检测代理设置的原因。

那么请你帮我怎么做?

由于 拉朱

4 个答案:

答案 0 :(得分:4)

这是一个很好的解决方案:

import org.openqa.selenium.Proxy.ProxyType;` 

public static WebDriver dr = null;
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy(); 
proxy.setSslProxy("proxyurl"+":"+8080); 
proxy.setFtpProxy("proxy url"+":"+8080); 
proxy.setSocksUsername("SSSLL277"); 
proxy.setSocksPassword("password"); 

DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability(CapabilityType.PROXY, proxy); 
dr = new FirefoxDriver(dc);

答案 1 :(得分:3)

您可以使用firefox驱动程序在运行时设置配置文件的首选项。试试以下内容:

FirefoxProfile ff = new FirefoxProfile();
ff.setPreference("network.proxy.type", ProxyType.AUTODETECT.ordinal());
FirefoxDriver ffD = new FirefoxDriver(ff);

答案 2 :(得分:1)

这个解决方案对我有用,有点像前两个的组合而且很简单。不需要进行单独的用户身份验证。

import org.openqa.selenium.Proxy.ProxyType;
import org.openqa.selenium.firefox.FirefoxProfile;

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", "proxy.something.com");
profile.setPreference("network.proxy.http_port", 8080);
profile.setPreference("network.proxy.ssl", "proxy.something.com");
profile.setPreference("network.proxy.ssl_port", 8080);


WebDriver driver = new FirefoxDriver(profile); 

答案 3 :(得分:0)

这是我设置自动检测的方法:

FirefoxProfile profile = new FirefoxProfile();
Proxy proxy = new Proxy();
proxy.IsAutoDetect=true;
profile.SetProxyPreferences(proxy);
driver = new FirefoxDriver(profile);