简体   繁体   中英

How to set proxy authentication in PhantomJS using selenium?

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 (eg --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, eg --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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM