无法设置Firefox个人资料&代理设置& Java中的身份验证

时间:2012-11-23 06:32:15

标签: java selenium selenium-webdriver

亲爱的Selenium Webdriver Gurus,

我在使用Selenium Webdriver 2启动Firefox时尝试拾取FireBug时进行了以下Firefox配置文件设置更改:

public static void main(String[] args) 
{
    File fireBugFile = new File("C:/selenium-ide-1.9.0.xpi");
    FirefoxProfile firefoxProfile = new FirefoxProfile();
    firefoxProfile.addExtension(fireBugFile);
    firefoxProfile.setPreference("network.proxy.type", 1);
    firefoxProfile.setPreference("network.proxy.http", "proxyserver");
    firefoxProfile.setPreference("network.proxy.http_port", "80");
    firefoxProfile.setPreference("extensions.firebug.currentVersion", "1.9.0");

    String urlStrProxy = "http://www.example.com/",
    proxy = "proxyserver",
    port = "80",
    username = "jack",
    password = "XXXXXXX";

    Authenticator.setDefault(new SimpleAuthenticator(username,password));
    Properties systemProperties = System.getProperties();
    systemProperties.setProperty("http.proxyHost",proxy);
    systemProperties.setProperty("http.proxyPort","80");

    WebDriver driverMainPage = new FirefoxDriver(firefoxProfile);
}

public class SimpleAuthenticator extends Authenticator
{
   private String username, password;

   public SimpleAuthenticator(String username,String password)
   {
       this.username = username;
       this.password = password;
   }

   protected PasswordAuthentication getPasswordAuthentication()
   {
       return new PasswordAuthentication(username,password.toCharArray());
   }
}

还尝试包含代理设置&带有附加语句的身份验证详细信息,无需通过代理服 当Firefox访问www.abc.com但没有成功时,必须通过弹出屏幕手动输入它们:

还添加了“-Dhttp.proxyHost = proxyserver -Dhttp.proxyPort = 80 -Dhttp.proxyUser = jack -Dhttp.proxyPassword = XXXXXXX”作为JVM选项。

我正在Windows XP上运行Java 7,Selenium 2.25.0,Netbeans 7.2和7。

所有搜索都没有直接回答这个问题。

非常感谢任何帮助。

提前致谢,

杰克

2 个答案:

答案 0 :(得分:1)

我认为端口号应该是

中的整数

<强> firefoxProfile.setPreference("network.proxy.http_port", 80);

要处理弹出窗口询问用户名和密码,您可以使用自动

答案 1 :(得分:0)

根据提供的代码,提供selenium ide而不是firebug。看吧

  File fireBugFile = new File("C:/selenium-ide-1.9.0.xpi");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(fireBugFile);

所以这可能是为什么火虫没有得到的问题..用正确的版本w.r.t firefox版本提供正确的火虫位置。

用于身份验证,之前我在下面使用了一个而不考虑firefox配置文件。

driver.get("http://UserName:Password@Example.com");

还手动创建了firefox配置文件并对配置文件进行了身份验证。我在执行时调用了这个配置文件,这种方式在firefox的情况下也能正常工作。

由于