编码UI测试-通过windows认证凭证从代码-[在Web应用程序]

本文关键字:Web 应用程序 代码 测试 UI -通过 windows 凭证 认证 编码 | 更新日期: 2023-09-27 18:01:54

我有一个情况,我想通过寡妇身份验证到web应用程序。

我在ie 11/10中遇到了一个问题,当我运行功能测试和打开web应用程序时,它没有要求我提供windows身份验证凭据。我在网上发现我们可以改变IE的安全设置,但在我的情况下,我工作的公司禁用了这个功能。

所以,请让我知道是否有任何方法我可以通过windows认证凭证从代码?

编码UI测试-通过windows认证凭证从代码-[在Web应用程序]

我不相信有一种方法可以通过代码传递windows凭据。您最好的选择是将您的测试代理帐户添加到测试目的所需的任何AD组中。

我们可以使用WinControls在CodedUI中处理web应用程序的Windows身份验证。下面是我的代码,工作得很好:

        public void launch88()
        {
            BrowserWindow Browser = new BrowserWindow();
            string url = "http://abcd:8080/xyz/";
            BrowserWindow.Launch();
            Browser.NavigateToUrl(new Uri(url));
            WinWindow securityWindow = new WinWindow();
            securityWindow.SearchProperties.Add(WinWindow.PropertyNames.Name, "Windows Security",PropertyExpressionOperator.EqualTo);
            securityWindow.SearchProperties.Add(WinWindow.PropertyNames.ClassName, "Credential Dialog Xaml Host", PropertyExpressionOperator.EqualTo);
            securityWindow.WindowTitles.Add("Windows Security");

            WinEdit userName = new WinEdit(securityWindow);
            userName.SearchProperties.Add(WinEdit.PropertyNames.Name, "User name", PropertyExpressionOperator.EqualTo);
            userName.WindowTitles.Add("Windows Security");                     
            Mouse.Click(userName);            
            Keyboard.SendKeys("my username");

            WinEdit password = new WinEdit(securityWindow);
            password.SearchProperties.Add(WinEdit.PropertyNames.Name, "Password", PropertyExpressionOperator.EqualTo);            
            password.WindowTitles.Add("Windows Security");            
            Mouse.Click(password);
            Keyboard.SendKeys("my password");

            WinButton ok = new WinButton(securityWindow);
            ok.SearchProperties.Add(WinButton.PropertyNames.Name, "OK", PropertyExpressionOperator.EqualTo);            
            ok.WindowTitles.Add("Windows Security");            
            Mouse.Click(ok);
        }