编码的UI WPF测试:无法对隐藏的控件执行'Click'



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

[TestMethod]
public void CodedUITestMethod1()
{                
    ApplicationUnderTest.Launch(@"c:myappbinDebugmyapp.exe");
    this.UIMap.LoginAndClickDoAction1();
    for (int i = 1; i <= 10; i++)
    {
        this.UIMap.DoAction1();
    }
    this.UIMap.ExitMyApp();
}

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

Cannot perform 'Click' on the hidden control

当它抛出时,这似乎有所不同,但它提供的按钮永远不会隐藏。 看到这个问题后,我尝试插入:

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

进入UIMap在测试的顶部,但它没有区别。

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

快速免责声明:这个问题与VS2015有关,所以我想这可能是一个合法的MS错误。

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

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

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

您可以尝试致电:

uithree.Find();

如果不成功,请致电

uitwo.Find();

等等。

出于性能原因,Find被调用到层次结构中尽可能深的地方。

最新更新