【发布时间】:2017-08-14 18:09:27
【问题描述】:
我了解 Watir 和 Selenium 在尝试登录网页进行测试时遇到了 NTLM 身份验证问题。我的研究表明,有两种正常的工作方式。 1. 将凭据添加到 URL 2. 使用自动身份验证插件/扩展。我目前没有在我的环境中使用扩展的选项,尽管我正在努力。所以,我只剩下传递凭据了。
我遇到的问题如下。
铬: 在 Chrome 中,我以http://password:user@example.com/ 手动传递凭据(就像我直接在浏览器中输入一样),它会打开页面,但不会填充弹出窗口。如果我尝试手动将其作为http://example.com?username=usr&password=password 传递,它会填充身份验证弹出窗口但不会继续。
如果我尝试使用以下代码使用 ruby 进行自动化,我得到的只是未知的用户名和密码。我已经确认 usr 和 pwd 是正确的。
browser.goto("http://example.com?login=usr&password=password") browser.goto("http://password:usr@example.com/")
IE IE 的行为有点不同。 在 IE 中,我将凭据手动传递为http://password:user@example.com/,它返回一个找不到页面的错误。如果我尝试手动将其作为http://example.com?username=usr&password=password 传递,它会正确登录。
如果我尝试使用以下代码使用 ruby 进行自动化,第一个示例会引发无法找到页面错误。第二个示例打开页面,但不填充弹出窗口。我已经确认 usr 和 pwd 是正确的。
browser.goto("http://example.com?login=usr&password=password") browser.goto("http://password:usr@example.com/")
我做错了什么?
我的环境是 Windows 7 Pro、IE 11 和 Chrome 60。
发现一篇文章表明 MS 在 URL 中删除了身份验证。所以 pwd:usr@ 不起作用是有道理的。文章编号:834489
【问题讨论】:
-
不确定 IE,但 chrome v59+ 删除了对子资源请求中嵌入凭据的支持。例如:stackoverflow.com/questions/44658869/…
-
感谢您的回复。 IE 不久前删除了同样的东西。我仍然没有找到解决此问题的方法。
标签: ruby selenium authentication watir