CodedUI WPF测试:无法执行'点击'在隐藏的控制上

时间:2015-03-16 12:37:36

标签: wpf coded-ui-tests visual-studio-2015

我为WPF应用程序设置了一个相对基本的编码UI测试。测试打开一个应用程序,按几个按钮然后关闭它。这是测试代码:

[TestMethod]
public void CodedUITestMethod1()
{                
    ApplicationUnderTest.Launch(@"c:\myapp\bin\Debug\myapp.exe");

    this.UIMap.LoginAndClickDoAction1();

    for (int i = 1; i <= 10; i++)
    {
        this.UIMap.DoAction1();
    }

    this.UIMap.ExitMyApp();
}

应用程序启动正常,首次登录并单击按钮。它随后抛出异常:

Cannot perform 'Click' on the hidden control

当它抛出时,这似乎有所不同,但它给出的按钮永远不会被隐藏。看到this question后,我尝试插入:

uIMyButton1.Find();
uIMyButton2.Find();

进入测试顶部的UIMap,但没有任何区别。

可能导致此错误的原因是什么?我将如何进行调试?

快速免责声明:此问题与VS2015有关,因此我认为它可能是合法的MS错误。

1 个答案:

答案 0 :(得分:0)

问题中未显示uIMyButton1uIMyButton2的详细信息。它们可以用在这种风格的代码中(一旦组合介入声明):

UIControl aControl = this.UIMap.uione.uitwo.uithree.uIMyButton1.Click();

按钮的任何父属性可能适用于已重新显示的项目。所以我认为这个问题中的问题显示了答案,只是Find()应该在更高的层次上应用。

您可以尝试致电:

uithree.Find();

如果不成功则调用

uitwo.Find();

等等。

出于性能原因Find尽可能深入调用层次结构。