0

我正在尝试在 IE 8 兼容模式下使用 IE 9 在 VS 2010 中创建 UI 测试,但是在尝试记录记录许多步骤的操作时失败。然后,当我在缺少的步骤中手动编码并尝试使用用户名和密码填写登录表单时,我收到一个异常,提示我未能对隐藏控件执行操作。

UI测试代码:

public void Recordedmethod()
{
        BrowserWindow uILogInWindowsInternetWindow = this.UILogInWindowsInternetWindow;
        HtmlHyperlink uILogInHyperlink = this.UILogInWindowsInternetWindow.UIHomePageDocument.UILogInHyperlink;
        HtmlEdit uIUsernameEdit = this.UILogInWindowsInternetWindow.UILogInDocument1.UIUsernameEdit;
        HtmlEdit uIPasswordEdit = this.UILogInWindowsInternetWindow.UILogInDocument1.UIPasswordEdit;
        #endregion

        // Go to web page 'http://localhost:15856/WebSite1/'
        uILogInWindowsInternetWindow.NavigateToUrl(new System.Uri(this.RecordedMethodParams.UILogInWindowsInternetWindowUrl));

        // Set flag to allow play back to continue if non-essential actions fail. (For example, if a mouse hover action fails.)
        Playback.PlaybackSettings.ContinueOnError = true;

        // Mouse hover 'Log In' link at (1, 1)
        Mouse.Click(uILogInHyperlink);

        // Reset flag to ensure that play back stops if there is an error.
        Playback.PlaybackSettings.ContinueOnError = false;

        // Type 'test' in 'Username:' text box
        uIUsernameEdit.Text = this.RecordedMethodParams.UIUsernameEditText;

        // The following element is no longer available: IE web control; Process Id [6320], window handle [3168166]

        // Type '********' in 'Password:' text box
        uIPasswordEdit.Password = this.RecordedMethodParams.UIPasswordEditPassword;

        // The following element is no longer available: IE web control; Process Id [6320], window handle [3168166]
}
4

4 回答 4

1

这是与 9 月发布的 Internet Explorer 补丁相关的问题。

KB2870699

这会影响 VS2010 和 VS2012。

Microsoft 发布了一个补丁来纠正 VS2012 的问题(我已经确认它为我解决了这个问题)。

http://blogs.msdn.com/b/visualstudioalm/archive/2013/09/17/coded-ui-mtm-issues-on-internet-explorer-with-kb2870699.aspx

目前VS2010唯一的解决方法是卸载补丁(KB2870699);但是,与任何类型的安全补丁一样,您需要仔细考虑根据您的情况拉取它是否安全。

编辑:这对我来说不是一个有趣的错误。我刚刚从 VS2010 升级到 VS2012,突然间我发现我以前运行的 CodedUI 测试都没有工作。我认为这是 VS2012 的问题,在一天的大部分时间里我的头撞到墙上后,我发现这是补丁的问题。在我的系统上安装补丁的同时升级到 2012 只是我的运气。美好的时光!

于 2013-10-21T14:14:14.997 回答
1

实际上有一个针对 VS 2012 的更新来解决这个问题

http://blogs.msdn.com/b/visualstudioalm/archive/2013/09/17/coded-ui-mtm-issues-on-internet-explorer-with-kb2870699.aspx

希望这可以帮助!

于 2013-10-25T13:11:11.787 回答
0

我的编码 ui 测试遇到了同样的问题。我猜这是VS-2012的一个问题,我尝试了每个更新(安装/卸载它们和所有东西......)没有任何效果。我尝试了VS-2013 Ultimate,它奏效了。

于 2013-10-23T07:34:36.917 回答
-2

您可以使用异常处理来捕获错误,同时测试仍未失败。

测试失败,因为在它执行单击操作时,控件是隐藏的。

try 
{
   //your code goes here
}
catch(FailedToPerformActionOnHiddenControlException e)
{
   Console.WriteLine(e.Message);
} 
于 2015-07-09T16:00:07.267 回答