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



我正在用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对象?

谢谢。

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

但我看到您熟悉lambda表达式,因此可以使用相同的表达式来获取选定的节点。类似于:

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

最新更新