我已經爲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:
我自己也嘗試這個。但沒有奏效。
capabilities.setCapability("chrome.switches", Arrays.asList("--proxy-server=http://username:[email protected]:port"));
簡稱: https://stackoverflow.com/a/19225780/8329042
編輯:我已經加入:(@里亞茲的答案)
proxy.setProxyType(ProxyType.MANUAL);
在我的代碼利用這一點,它說:
2017-07-26 20:22:03 INFO ElectoralRoll:83 - IP Address: proxy authorization required