当前位置: 首页 > 面试题库 >

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

章学义
2023-03-14
问题内容

我们的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相同的行为。

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


问题答案:

我对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


 类似资料:
  • 我一直试图用restTemplate传递基本身份验证,但它甚至没有将身份验证头传递给服务器。下面是我使用的bean定义` `

  • 问题内容: 我目前正在尝试使用HTTP和HTTPS访问URL。我尝试访问的URL需要基本身份验证。使用HTTP可以正常工作,但是使用HTTPS则不能。我不确定是否需要使用HTTPS添加其他内容。该URL应该返回给我的文本是键值格式,可以加载到对象中。 这是到目前为止我尝试过的代码。 这是证书类别 当我删除所有证书代码(以及证书代码)时的错误消息: 问题答案: 问题似乎是由于在更改连接的和实例之前打

  • 问题内容: 在(带有)中,我尝试使用以下语句通过基本身份验证访问我的网页: 但是Google Chrome浏览器在控制台中向我发出以下警告: [弃用]其URL包含嵌入式凭据(例如https://user:pass@host/)的子资源请求被阻止。有关更多详细信息,请参见https://www.chromestatus.com/feature/5669008342777856。 在标记的链接中提到该

  • 问题内容: 我试图模仿Java中此curl命令的功能: 我使用Commons HttpClient 3.0编写了以下内容,但最终还是从服务器上获取了一个。有人可以告诉我我做错了什么吗? 我后来尝试了Commons HttpClient 4.0.1,但仍然遇到相同的错误: 问题答案: 好的,这样可以工作。万一有人想要它,这是对我有用的版本:)

  • 问题内容: 在(带有)中,我尝试使用以下语句通过基本身份验证访问我的网页: 但是Google Chrome浏览器在控制台中向我发出以下警告: [弃用]其URL包含嵌入式凭据(例如)的子资源请求被阻止。 在标记的链接中提到该支持已被删除: 在子资源请求中放弃对嵌入式凭据的支持。(已删除) 我现在的问题是,是否有另一种方法可以从Selenium进行基本身份验证? 问题答案: 对此进行了一些更新 : 在

  • 我是全新的RestTemboard和基本上在REST API也。我想通过Jira REST API检索我的应用程序中的一些数据,但取回401未经授权。在jira rest api留档上找到并发表文章,但不知道如何将其重写为java,因为示例使用curl的命令行方式。我将感谢任何建议或建议如何重写: 进入java使用SpringRest模板。其中ZnJlZDpmcmVk是用户名:密码的Bas64编码