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?
Just like any other browsers with GUI interface (Firefox, IE, Chrome, etc.), for PhantomJS also, Selenium has a standard API to support the automation. The above code snippet launches Selenium official website on the PhantomJS browser and performs click operation on the download tab.
We can handle proxy in Selenium in Java with the help of PROXY class.
Following piece of code used to set proxy in Selenium. ChromeOptions option = new ChromeOptions(); Proxy proxy = new Proxy(); proxy. setHttpProxy("localhost:5555"); option. setCapability(CapabilityType.
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 ishttp
).--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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With