I'm running this simple selenium test in java:
public static void main(String[] args){
WebDriver driver = new PhantomJSDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.id("gbqfif"));
element.sendKeys("cheese");
element.submit();
System.out.println("Titulo:"+driver.getTitle());
driver.quit();
}
but here at my office it requires proxy authentication and I have no idea how to set it.
I have to put my user and password somewhere.
Can you help me out?
PhantomJS uses the three proxy options that are set from the commandline (docs).
--proxy=address:port
specifies the proxy server to use (e.g. --proxy=192.168.1.42:8080
).
--proxy-type=[http|socks5|none]
specifies the type of the proxy server (default is http
).
--proxy-auth
specifies the authentication information for the proxy, e.g. --proxy-auth=username:password)
.
To use these, you have to add them to the DesiredCapabilities map (as seen in this answer):
ArrayList<String> cliArgsCap = new ArrayList<String>();
cliArgsCap.add("--proxy=address:port");
cliArgsCap.add("--proxy-auth=username:password");
cliArgsCap.add("--proxy-type=http");
DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
capabilities.setCapability(
PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap);
WebDriver driver = new PhantomJSDriver(capabilities);