2

嗨,我正在编写 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 浏览器正在打开,但代理设置正在停止。

如果它是手动的,我去了工具->选项-设置->那里我已经为此网络提供了自动检测代理设置
它正在工作。

但是每当我通过脚本打开时,我认为新的配置文件正在打开。这就是为什么我使用脚本将此网络的自动检测代理设置设置为 true 的原因。

那么你能帮我怎么做吗?

谢谢拉朱

4

4 回答 4

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);
于 2013-03-21T14:34:13.840 回答
3

您至少可以在运行时使用 firefox 驱动程序设置配置文件的首选项。尝试以下方法:

FirefoxProfile ff = new FirefoxProfile();
ff.setPreference("network.proxy.type", ProxyType.AUTODETECT.ordinal());
FirefoxDriver ffD = new FirefoxDriver(ff);
于 2013-01-09T14:03:31.710 回答
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); 
于 2013-09-11T16:39:24.417 回答
0

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

FirefoxProfile profile = new FirefoxProfile();
Proxy proxy = new Proxy();
proxy.IsAutoDetect=true;
profile.SetProxyPreferences(proxy);
driver = new FirefoxDriver(profile);
于 2014-02-06T13:01:58.293 回答