小编典典

如何使用硒在PhantomJS中设置代理身份验证?

java

我正在用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();
}

但是在我的办公室这里需要代理身份验证,我不知道如何设置它。

我必须将我的用户名和密码放在某个地方。

你能帮我吗?


阅读 219

收藏
2020-09-21

共1个答案

小编典典

PhantomJS使用从命令行(docs)设置的三个代理选项。

  • --proxy=address:port指定要使用的代理服务器(例如--proxy=192.168.1.42:8080)。
  • --proxy-type=[http|socks5|none]指定代理服务器的类型(默认为http)。
  • --proxy-auth指定代理的认证信息,例如--proxy-auth=username:password)

要使用这些功能,您必须将它们添加到DesiredCapabilities映射中(如答案所示):

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);
2020-09-21