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