CodedUi:当标题名称不断变化时,如何进行窗口的搜索属性?

时间:2012-01-11 09:07:58

标签: c# testing automation coded-ui-tests

我试图在窗口内自动点击控件,根据窗口中选择的内容,窗口的图块会发生变化。有时它是“abc”,第二次是“123”。有两个场景的窗口标题中没有常用字符串

当我录制编码的ui测试时,它将标题称为“abc”。现在我想以某种方式自定义测试,以便任何标题都能正常工作。

我该怎么办?

任何帮助都会很棒。

3 个答案:

答案 0 :(得分:4)

您可以在运行时更改searchProperties,如下所示:

myUITestControl.SearchProperties.Remove(UITestControl.PropertyNames.Name); myUITestControl.SearchProperties.Add(UITestControl.PropertyNames.Name,“123”);

这应该在首次搜索控件之前完成。所以也许在你的测试班的ctor。 (或者您也可以将“AlwaysSearch”添加到UITestControl的SearchConfigurtation中)

问候 约翰内斯

答案 1 :(得分:2)

CodedUI测试确实没有很多内置的“好”选项。为每个测试用例编写十几行搜索属性更改是一个主要的痛苦,更不用说容易出错(忘记更改属性和测试中断或慢速爬行)。没有办法在UIMap.designer文件中设置的搜索属性中使用变量,或者至少我找不到在重新生成文件后会出现问题的方法。将所有内容移出设计器文件都不是一个好选择,因为控件似乎没有随附的方法移动。

当我遇到这个问题时,我最终在UIMap上使用了反射并进行了大量的运行时搜索并替换了每个控件的搜索属性。不是一个理想的解决方案,但它确实有效,并且使我免于编写大量单独的搜索属性更改。

答案 2 :(得分:1)

您可以使用声明的变量

变量="价值&#34 ;; (甚至可以使用数组) myUITestControl.SearchProperties [UITestControl.PropertyNames.Name] =变量; myUITestControl.SearchProperties [UITestControl.PropertyNames.Name] =变量[1];

或者如果您知道可以使用的部分窗口名称:

myUITestControl.SearchProperties.Add(" Name"," Value",propertyExpressionOperator.Contains);

或 myUITestControl.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.Name," Value",PropertyExpressionOperator.Contains));