一尘不染

在Internet Explorer 10中使用Selenium进行基本身份验证

selenium

我们的Web应用程序之一是使用基本身份验证,并使用AngularJS进行构建。为了测试该应用程序,我使用了Protractor,后者使用Selenium与浏览器进行通信。

在Chrome中,一切正常,进行基本身份验证很容易:

username:password@host.ext

在Internet Explorer下,带有密码和用户名的URL被认为存在安全风险,因此是不允许的。在Internet Explorer
9之前,可以在注册表中关闭此设置(FEATURE_HTTP_USERNAME_PASSWORD_DISABLE)。为Internet Explorer
10设置此注册表项时,行为会发生变化(不显示错误,并且不使用用户名和密码也将重写URL),但是该功能似乎已损坏。Internet Explorer
11显示与Internet Explorer 10相同的行为。

有谁有其他解决方法来绕过此问题?


阅读 335

收藏
2020-06-26

共1个答案

一尘不染

我对Internet Explorer 10的升级也是对64位Internet Explorer的升级。由于某种原因,64位变体使用另一个寄存器密钥:

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

在此注册表项中设置DWORD iexplore.exewith值0可解决此问题。

64位变体的速度也很慢,切换回32位是解决此慢速的好选择。IE的64位变体仅与的64位变体一起使用IEDriverServer.exe。使用IEDriverServer.exe32位,可以切换回IE
32位。

完整地说,32位寄存器的密钥是:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Internet Explorer/MAIN/FeatureControl/FEATURE_HTTP_USERNAME_PASSWORD_DISABLE
2020-06-26