如何使用Selenium+Java在ChromeDriver中执行代理身份验证



好吧,所以我的问题是我找不到一种通过身份验证的代理连接来启动Chrome的方法。我有:代理ip,端口,用户名和密码。我需要的是:使用Selenium 启动与该代理连接的Chrome实例

我试过的:

DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("chrome.switches", Arrays.asList("--proxy-server=USERNAME:PASS@IP_ADDRESS:PORT"));
WebDriver driver = new ChromeDriver(capabilities);

和:

Proxy proxy = new Proxy();
proxy.setHttpProxy("IP_ADDRESS:PORT");
proxy.setSocksUsername("USERNAME");
proxy.setSocksPassword("PASSWORD");
ChromeOptions options = new ChromeOptions();
options.setProxy(proxy);
ChromeDriver driver = new ChromeDriver(options);

不幸的是,这些方法都不起作用。。。

我可以通过设置系统级代理来解决这个问题:

System.setProperty("java.net.useSystemProxies", "true");
// http
System.setProperty("http.proxyHost", "1.2.3.4");
System.setProperty("http.proxyPort", 8080);
System.setProperty("http.proxyUser", "username");
System.setProperty("http.proxyPassword", "pass");
// https
System.setProperty("https.proxyHost","1.2.3.4");
System.setProperty("https.proxyPort", 8080);
System.setProperty("https.proxyUser", "username");
System.setProperty("https.proxyPassword", "pass");
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");
System.setProperty("jdk.https.auth.tunneling.disabledSchemes", "");
Authenticator.setDefault(new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("user", "pass".toCharArray());
}
});

相关内容

  • 没有找到相关文章

最新更新