2017-07-27 9 views
0

PhantomJSのセットアッププロキシがあり、以下のコードを使ってIPアドレスを確認しました。それはうまく動作します。セレンでクロムのプロキシを設定する方法:Java

ここでホスト名がIPアドレスである:43.19.196.36

DesiredCapabilities capabilities = DesiredCapabilities.phantomjs(); 
capabilities.setJavascriptEnabled(true); 
System.setProperty("phantomjs.binary.path", "../Drivers/phantomjs.exe"); 

ArrayList<String> cliArgsCap = new ArrayList<String>(); 
cliArgsCap.add("--proxy=hostname:port"); 
cliArgsCap.add("--proxy-auth=username:password"); 
cliArgsCap.add("--proxy-type=http"); 
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap); 

driver = new PhantomJSDriver(capabilities); 

driver.get("http://api.ipify.org/"); 
logger.info("IP Address: " + Jsoup.parse(driver.getPageSource()).body().text()); 

は、このコードは正常に動作し、私のアプリケーションは、プロキシアドレスを使用しています。

2017-07-24 16:37:47 INFO ElectoralRoll:81 - IP Address: 42.10.197.10 

ただし、chromeと同じプロキシを設定するにはどうすればよいですか。ここに私のコードです。私のIPアドレスが表示されます。プロキシを使用していません。

Proxy proxy = new Proxy(); 

proxy.setHttpProxy("hostname:port"); 
proxy.setFtpProxy("hostname:port"); 
proxy.setSslProxy("hostname:port"); 
proxy.setSocksUsername("username"); 
proxy.setSocksPassword("password"); 

capabilities.setCapability(CapabilityType.PROXY, proxy); 

これは私のIPアドレスを表示します:

2017-07-24 16:37:47 INFO ElectoralRoll:81 - IP Address: 

私はこれをも試してみました。しかし、動作しませんでした。 https://stackoverflow.com/a/19225780/8329042

編集:私は追加しました:呼ば

capabilities.setCapability("chrome.switches", Arrays.asList("--proxy-server=http://username:[email protected]:port")); 

(リアズの答え@)

proxy.setProxyType(ProxyType.MANUAL); 

を私のコードでこれを使用すると、それは言う:

2017-07-26 20:22:03 INFO ElectoralRoll:83 - IP Address: proxy authorization required 

答えて

0

てみてくださいコードhereを確認してください。特に、これらのビット:

proxy.setProxyType(ProxyType.MANUAL); 

capability.setCapability(CapabilityType.PROXY, proxy); 

私はChromeの特別な必要性を認識していないので、これはおそらく基本的なものです。

0

Chromeの基本認証で問題が発生しているようです。

Proxymesh Dashboardの "Authenticated IP or Hostname"に自分のIPアドレスを追加しました。これで私はユーザー名とパスワード認証をバイパスしました。

プロキシプロキシ=新しいProxy();

proxy.setHttpProxy("hostname:port"); 
proxy.setFtpProxy("hostname:port"); 
proxy.setSslProxy("hostname:port"); 
//proxy.setSocksUsername("username"); 
//proxy.setSocksPassword("password"); 
proxy.setAutodetect(false); 
proxy.setProxyType(ProxyType.MANUAL); 
capabilities.setCapability(CapabilityType.PROXY, proxy); 

これで私はクロムを使用してプロキシを使用できます。このソリューションは、ProxyMeshプロバイダー固有のものです。

関連する問題