在编码的UI测试中只知道部分窗口标题时查找窗口

时间:2012-06-18 16:05:43

标签: c# visual-studio-2010 coded-ui-tests

我正在编写的用于编码UI测试的应用程序有一个窗口,其中部分窗口标题基于为临时文件生成的随机文件名,因此测试只能知道窗口标题的静态部分。

有时,当没有其他窗口打开时,测试运行正常。但是,当其他窗口打开时,这有点问题。如果其他窗口具有类似的控件,则测试选择哪个窗口是不可预测的。

2 个答案:

答案 0 :(得分:13)

我已将其缩小到这一点:在搜索控件时,Coded UI Test使用搜索属性和树状结构的控件。如果它找不到完全匹配,它会找到一个匹配的匹配(因此它找不到确切的窗口标题名称,它排除了它并继续搜索与任何其他给定属性匹配的窗口),这就是它与控件一起工作的原因在其他窗口。

解决方案实际上是为了给它提供更多的搜索属性。我使用的一种方法是使用PropertyExpression添加属性并将其传递给PropertyExpressionOperator.Contains

作为一个例子,我记录了打开MS Word并关闭它。这会在UIMap中生成一个控件,其构造函数如下:

this.SearchProperties[WinWindow.PropertyNames.Name] = "Document1 - Microsoft Word";
this.SearchProperties[WinWindow.PropertyNames.ClassName] = "OpusApp";

相反,第一行应该是:

this.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.Name, "Microsoft Word", PropertyExpressionOperator.Contains));

答案 1 :(得分:3)

或者更简单,您可以使用:

this.SearchProperties.Add(WinWindow.PropertyNames.Name, "Microsoft Word", PropertyExpressionOperator.Contains);