【问题标题】:How can i handle Server authentication pop-up in Internet Explorer in Selenium Webdriver using JAVA?如何使用 JAVA 在 Selenium Webdriver 中的 Internet Explorer 中处理服务器身份验证弹出窗口?
【发布时间】:2016-04-27 23:16:34
【问题描述】:

我想在具有服务器身份验证的 URl 上运行自动化测试用例。在 Firefox 和 Chrome 中,我通过如下方式传递 URl 来处理它:

http://username:password@url.com

它在 IE (Windows 8.1) 中不起作用。我已经用谷歌搜索过了,但没有运气。

在注册表中进行一些更改后,可以在 IE 中弹出服务器身份验证。但是现在请有人告诉我如何使用 Selenium WebDriver 处理服务器身份验证弹出窗口。

【问题讨论】:

  • 这是什么类型的弹出窗口?模态对话框还是简单的警报?
  • 请尝试 hirtenfelder 的建议,如果不起作用,请尝试使用 Robot 类。
  • 我个人不认为机器级注册表黑客是完成测试通过的可靠方法。在现实世界中,这样的问题会再次困扰您。我认为您最好使用_driver.SwitchTo().Window(handle)(或_driver.SwitchTo().Frame(targetFrame),如果更适用)路线来实现您的目标,覆盖范围广泛的浏览器。
  • @jimtollan 同样,模态对话框窗口将不支持 driver.switchTo 方法。我认为我们应该使用 Robot 类或 Sikuli 或任何其他工具来处理它。

标签: java internet-explorer selenium-webdriver


【解决方案1】:

Internet Explorer 不支持网站地址(HTTP 或 HTTPS URL)中的用户名和密码。见KB834489

但您可以启用它。在 Windows 注册表中为

创建一个 DWORD iexplore.exe/0

HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Internet Explorer-er/MAIN/FeatureControl/FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

HKEY_LOCAL_MACHINE/软件/微软/互联网 Explorer/MAIN/FeatureControl/FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

【讨论】:

  • 感谢您的回复。我已经试过了。在访问 URL 时也进行这些更改后,它要求在身份验证弹出窗口中输入用户名和密码
  • 对我来说,KB834489 中描述的解决方案解决了我的 Internet Explorer 基本身份验证问题。我做的第二个配置是,为所有区域启用保护模式为相同的值(启用或禁用)。或者,我将标志 ignoreProtectedModeSettings 设置为 true。但这是另一个话题。根据您的描述,如果您在应用程序中禁用基本身份验证,我们是否可以假设测试运行?
猜你喜欢
  • 2014-08-09
  • 2017-06-26
  • 1970-01-01
  • 2020-03-16
  • 2016-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多