Codedui无法​​单击隐藏控件和边界矩形问题

时间:2016-05-24 10:16:14

标签: c# automation coded-ui-tests

我有基于Web的应用程序,我正在尝试单击超链接,在我的自动化开发机器中,它工作正常,但如果我在其他机器(VM)上运行相同,请说使用测试代理和测试测试机器控制器通过MTM。我收到以下错误消息

Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnHiddenControlException:无法对隐藏控件执行“单击”。额外细节: TechnologyName:'Web'。

我关注了几个msdn博客并在我的Windows上卸载了安全更新,目前我在我的开发盒上使用IE11并在我的开发盒上使用测试盒和VS 2010 premium

http://i1.blogs.msdn.com/b/visualstudioalm/archive/2013/09/17/coded-ui-mtm-issues-on-internet-explorer-with-kb2870699.aspx?PageIndex=4 但这对我不起作用。

我也尝试过使用下面的BoundingRectangle属性

UITestControlCollection uic = link.FindMatchingControls();

   foreach (UITestControl ui in uic)
{
     if (ui.BoundingRectangle.Width > 0)
      {
             Mouse.Click(ui);
             break;
      }

} 

但是我收到了这个错误:

Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotAvailableException:以下元素不再可用:IE Web控件;进程ID [5136],窗口句柄[1705946]其他细节:

我请求帮助。因为我正在努力找到发生这种情况的真正原因。超链接在屏幕上可见,但我不明白为什么它被隐藏用于播放,我也无法调试它,因为它在VM上,我正在使用Teat Agent从MTM运行它。

请求帮助

谢谢,

Keerthi

1 个答案:

答案 0 :(得分:0)

看来问题是您的控件被隐藏,尝试使用边界矩形创建并单击" clickpoint"单击作为隐藏控件的变通方法。

var clickPoint = new Point(control.BoundingRectangle.X +     control.BoundingRectangle.Width / 2, control.BoundingRectangle.Y +     control.BoundingRectangle.Height / 2);

Mouse.Click(clickPoint);