如何在Selenium WebDriver 中对FirefoxDriver、ChromeDriver 和IEdriver 进行基本认证?

新手上路,请多包涵

我正在使用 Selenium-Firefox-driverSelenium-Chrome-Driver 2.0a5 版( Web Driver API ),我正在尝试测试具有 BASIC 身份验证的 Web 应用程序(当我点击了任何页面,弹出窗口不是 HTML 的一部分)。

现在,我需要一个策略来验证 Firefox、Chrome 和 IE 中的用户(我将很快导入 IE 驱动程序)。

我在几篇文章中读到我可以设置 Firefox 配置文件,例如..类似于:

 FirefoxProfile ffProfile = new FirefoxProfile();
ffProfile.setPreference("network.http.phishy-userpass-length", 255);
WebDriver driver = new FirefoxDriver(ffProfile);
driver.get("http://username:password@hostname");

但它似乎对我不起作用。有没有人有适用于这些浏览器的有效解决方案?

原文由 sebarmeli 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 485
2 个回答

是的,目前不支持 BASIC HTTP 身份验证,但我现在可以在 FF 和 Chrome 上使用它。

我在问题中编写的代码适用于这些驱动程序。我只是尝试使用 FF3.6 作为 Firefox 默认浏览器(安装在 Firefox 文件夹中)而不是 FF4(尚不支持)。对于 IE,我可能会尝试通过 Windows 注册表禁用身份验证。

此页面 http://code.google.com/p/selenium/issues/detail?id=34 可能会有所帮助。

原文由 sebarmeli 发布,翻译遵循 CC BY-SA 3.0 许可协议

我通过以下方式让它与 Firefox webdriver 一起工作:

 profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", "google.com");
driver = new FirefoxDriver(profile);

driver.Navigate().GoToUrl("http://user:pwd@google.com");

原文由 Rod 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题