一尘不染

使用Selenium Webdriver处理Windows身份验证

selenium

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生成的。


阅读 503

收藏
2020-06-26

共1个答案

一尘不染

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

2020-06-26