我有点奇怪的情况。我们的测试应用程序包含主窗口标题栏中的版本号。例如:Photoshop 6.1.06
在开发周期中,版本经常更改。
在运行时,我可以将代码注入UI映射,以使用以下内容更新从ApplicationUnderTest.Exe路径动态提取的搜索属性:
var versionInfo = FileVersionInfo.GetVersionInfo(Constants.ApplicationUndertestPath);
string version = versionInfo.FileVersion;
_map.MainWin.SearchProperties[DXTestControl.PropertyNames.Name] =
string.Format("Photoshop : {0}", version);
到目前为止一直很好,但问题在于使用UIMap和Coded UI Recorder进行控制识别。
这里我试图将主窗口的搜索属性从Equal运算符改为Contains。
这样的事情:
this.SearchProperties.Add(new
PropertyExpression(DXTestControl.PropertyNames.Name, "Photoshop :",
PropertyExpressionOperator.Contains));
但是,新识别的控件不会添加到同一个MainWin树结构中,而是根据确切的版本创建查找,并将另一个MainWin.version数字实例添加到UIMap。
如果我使用Equal运算符在我的MainWin中设置确切的版本 - 那么一切正常并且新的控件被附加到MainWindow ui map分支结构,但这意味着维护每个构建的UIMap。
我该如何解决这个问题?