我为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错误。
答案 0 :(得分:0)
问题中未显示uIMyButton1
和uIMyButton2
的详细信息。它们可以用在这种风格的代码中(一旦组合介入声明):
UIControl aControl = this.UIMap.uione.uitwo.uithree.uIMyButton1.Click();
按钮的任何父属性可能适用于已重新显示的项目。所以我认为这个问题中的问题显示了答案,只是Find()
应该在更高的层次上应用。
您可以尝试致电:
uithree.Find();
如果不成功则调用
uitwo.Find();
等等。
出于性能原因Find
尽可能深入调用层次结构。