2015-05-14 40 views
4

C#中基于Webdriver的基于Selenium的测试必须使用Windows身份验证登录。使用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身份验证对话框,但我还没有找到对话的任何来源。

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

注:通过用户名和密码的网址无法正常工作,因为我理解,因为不是由网页上的HTML生成对话框。

+1

通读[this](http://www.seleniumframework。com/intermediate-tutorial/authentication-pop-up /) – Saifur

+0

如果您使用本地帐户/域帐户进行身份验证,那么我的工作就是解决此问题。 https://stackoverflow.com/questions/28045870/how-can-i-run-internet-explorer-selenium-tests-as-a-specific-domain-user/33666642#33666642 – Steven

回答

0

最后,我使用的一种解决方法,第一导航到认证页面,认证,然后重定向到页被测试为已认证用户。这种方法使用可以脚本化的页面内部认证页面。

3

您不能通过此窗口与硒进行身份验证。由于这不是浏览器窗口,而是OS的身份验证弹出窗口。除了浏览器之外,Selenium无法与其他进程一起工作。

但是你可以权威性没有得到这个窗口。

有2种方式错过它:

  1. 更改URL与身份验证:http://user:[email protected]。这将在部分情况下起作用,并将验证您需要的服务。在另一种情况下,你可以使用方式2

  2. 您需要创建在浏览器中新的配置文件,通过认证所需要的服务,并记住密码/认证。并且,在测试中使用创建的浏览器配置文件。

    2.1。在服务的情况下,有短饼干续航时间,你可以使用你的浏览器“AutoAuth”插件另外在您的个人资料从第2步


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

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

    相关问题