【问题标题】:Handling Windows authentication with Selenium Webdriver使用 Selenium Webdriver 处理 Windows 身份验证
【发布时间】:2015-07-26 15:26:08
【问题描述】:

在 C# 中基于 Selenium Webdriver 的测试必须使用 Windows 身份验证登录。

我尝试了几种方法:

  _Driver.SwitchTo().Alert();
  _Driver.FindElement(By.Id("UserName")).SendKeys("LynnTest");
  _Driver.FindElement(By.Id("Password")).SendKeys("Welcome1!");
  _Driver.SwitchTo().Alert().Accept();
  _Driver.SwitchTo().DefaultContent();

和

  IAlert alert = _Driver.SwitchTo().Alert();
  alert.SendKeys("LynnTest\\t");
  alert.SendKeys("Welcome1!");
  _Driver.SwitchTo().Alert().Accept();
  _Driver.SwitchTo().DefaultContent();

没有一个成功。我没有在我的本地系统上获得 Windows 身份验证对话框,因此我无法查看源以确定如何使用 Selenium By 方法找到用户名和密码。

我相信 Windows 身份验证对话框是由浏览器提供的,但我没有找到该对话框的任何来源。

使用 Selenium(不是 AutoIt 或其他类似工具)如何将用户名和密码传递到 Windows 身份验证对话框?解决方案必须基于 Selenium 代码,而不是加载项,我无法访问云中的浏览器。

注意:在 URL 中传递用户名和密码不起作用,据我了解,因为对话框不是由页面上的 html 生成的。

【问题讨论】:

标签: c# selenium selenium-webdriver windows-authentication


【解决方案1】:

您不能使用 Selenium 通过此窗口进行身份验证。因为这不是浏览器窗口,而是操作系统的身份验证弹出窗口。 Selenium 无法与浏览器以外的其他进程一起工作。

但您可以在不获取此窗口的情况下进行身份验证。

有两种方法可以错过:

  1. 将带有身份验证的 URL 更改为: http://user:password@www.yourserveradress.com 。这将在部分情况下起作用,并将对您进行所需服务的身份验证。在另一种情况下,您可以使用方式 2。[太旧的方式,现在不起作用]

  2. 您需要在浏览器中创建一个新的配置文件,将身份验证传递给所需的服务并记住密码/身份验证。并且,ofc,在您的测试中使用创建的浏览器配置文件。

    2.1。如果服务的 cookie 生命周期较短,您可以从第 2 步开始在您的个人资料中额外使用浏览器的“AutoAuth”插件。

upd:据我所知,selenium 3.0 有一些新方法,您需要进行更多搜索。这是太旧的答案。如果您能以更好的方式缠绕,请联系我。


  1. 您可以通过“White”框架的登录弹出窗口编写自己的登录实现。在需要的步骤中,您可以检查所有显示的操作系统窗口的“正确”标题。如果存在这样的标题,请获取窗口的句柄。并使用“White”进行登录。

  2. 您可以使用以下项目https://github.com/ukushu/DialogCapabilities 作为示例,并编写自己的实现而不使用“White”框架。

【讨论】:

    【解决方案2】:

    当通过 url 传递凭据不起作用时,您可以通过使用外部软件“AutoIt V3”来做到这一点 这适用于 Windows 身份验证。

    【讨论】:

      【解决方案3】:

      最后我使用了一种解决方法,首先导航到身份验证页面,进行身份验证,然后重定向到要作为经过身份验证的用户进行测试的页面。此方法使用可编写脚本的页面内部身份验证页面。

      【讨论】:

      • 您发布了在您的问题中不起作用的代码,但没有为您的答案提供任何代码。不是很有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2013-10-18
      • 1970-01-01
      • 2018-03-18
      • 2015-02-04
      • 2023-03-26
      • 2014-08-09
      相关资源
      最近更新 更多