2013-12-10 23 views
0

我正在使用CodedUI测试测试WinForms应用程序。如何将WinTree转换为CodedUI测试中的TreeView?

一个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的对象?

谢谢。

回答

0

UIMap中生成的UI元素是从WinControl类派生的,我无法在其名称空间下找到TreeView,因此我不认为可以将WinTree转换为TreeView(一种是Windows窗体控件)是一个UI测试控件,因此在这里不可能投射)。

但我看到您熟悉lambda表达式,因此您可以使用相同的方法获取选定的节点。例如:

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

非常感谢你,基达。我会尝试你的建议。 – stasde

相关问题