如何在CodedUI测试中将WinTree转换为TreeView?

时间:2013-12-10 11:01:18

标签: c# winforms treeview coded-ui-tests

我正在使用CodedUI测试来测试WinForms应用程序。

我的测试将TreeView控件识别为WinTree控件。

据我所知,TreeView类提供了我需要的SelectedNode方法。所以,我想将WinTree对象转换为TreeView对象。但是当我尝试施放时,我得到了错误:

  

无法转换类型   'Microsoft.VisualStudio.TestTools.UITesting.WinControls.WinTree'来   'System.Windows.Forms.TreeView'

这是我的测试代码(稍作修改)

WinWindow myWinWindow = this.myWindow;
WinTree myWinTree = (WinTree)myWinWindow.GetChildren().Where(control => control.ControlType.ToString() == "Tree").First();

TreeView myTreeView = (TreeView)myWinTree;

有没有办法获取TreeView对象?

感谢。

1 个答案:

答案 0 :(得分:1)

UIMap中生成的UI元素是从WinControl类派生的,我在其命名空间下找不到TreeView,所以我认为你不能将WinTree转换为TreeView(一个是Windows窗体控件,另一个是一个UI测试控件,这样就不可能了。)

但我发现你熟悉lambda表达式,所以你可以使用它来获取所选节点。类似的东西:

myWinTree.GetChildren().First(x => (bool)x.GetProperty(WinTreeItem.PropertyNames.Selected));