如何从我的Java应用程序中设置Selenium的代理设置?

时间:2011-09-15 10:57:46

标签: java selenium

我想从我的Java应用程序中更改selenium服务器的代理。当我设置代理时,Selenium服务器不使用此设置的常见方式。 我的意思是当我启动selenium浏览器并进入IP检查服务(搜索谷歌搜索“我的IP是什么”)时,我希望代理IP出现而不是我的IP地址。

1 个答案:

答案 0 :(得分:5)

如果您在Selenium 2.0中使用WebDriver API来控制浏览器,您可以将浏览器配置为使用代理,使用org.openqa.selenium.Proxy类来定义代理,以及{{3启动WebDriver实例时。 specify it as a Capability

  

问:我需要使用代理。如何配置?

     

答:代理配置是通过org.openqa.selenium.Proxy类完成的   像这样:

Proxy proxy = new Proxy();
proxy.setProxyAutoconfigUrl("http://youdomain/config");

// We use firefox as an example here.
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(CapabilityType.PROXY, proxy);

// You could use any webdriver implementation here
WebDriver driver = new FirefoxDriver(capabilities);

如果您使用的是Selenium RC(Selenium 1;为了向后兼容性而在Selenium 2中提供API),那么您需要配置Selenium Server以使用代理。这是因为Selenium Server本身被配置为浏览器的代理,因此,Selenium Server必须通过代理将HTTP请求转发到Web应用程序。代理详细信息可以Selenium FAQ addresses it in a question提供:

  

代理配置

     

如果您的AUT位于需要身份验证的HTTP代理后面   你应该配置http.proxyHost,http.proxyPort,http.proxyUser   和http.proxyPassword使用以下命令。

$ java -jar selenium-server-standalone-<version-number>.jar -Dhttp.proxyHost=proxy.com -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=password