无法识别MSAA控件
我已经开始使用最近的编码UI测试来自动化我的Windows应用程序,并在访问某些MSAA控件时遇到问题。 我手动编码我的自动化,不想将控件添加到UI地图,然后使用它。无法识别MSAA控件
我卡住的控件是左侧窗格中的一个treeItem,它选择机器和细节显示在中间的客户区左侧。
我试图搜索控制使用十字准线显示到UI控件上的属性,但徒劳无功。
以下是我已经尝试了代码 -
UITestControl machine = new UITestControl(App);
machine.TechnologyName = "MSAA";
machine.SearchProperties.Add(WinTreeItem.PropertyNames.ControlType, "TreeItem");
machine.SearchProperties.Add(WinTreeItem.PropertyNames.Name, "Machine1");
machine.SearchProperties.Add(WinTreeItem.PropertyNames.ControlName, "m_tvPlantStructureView");
Mouse.Click(machine); // This code gives an error
ERROR-
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException: 播放未能找到与给定的控制搜索 属性。其他详细信息:技术名称:'MSAA'ControlType: 'TreeItem'Name:'Machine1'ControlName:'m_tvPlantStructureView' ---> System.Runtime.InteropServices.COMException:Error HRESULT E_FAIL已从调用返回到COM组件。
请参阅附件。 请让我知道,什么是问题,以及要完全摆脱未来未识别的控制错误的过程。
目前,我遵循做十字准线和获取属性,然后编写控件的属性以自动执行用户操作和断言的方法。但这种方式并不总是奏效。
让我知道是否有更好的方法来做到这一点。
您需要进行层次结构搜索。创建2个控件:首先将Treeview作为窗口。使用控件名称m_tvPlantStructureView,然后用名称Machine1创建一个新的TreeItem。
var treeView = new WinWindow(App);
treeView.SearchProperties.Add(WinWindow.PropertyNames.ControlName, "m_tvPlantStructureView");
var machine= new WinTreeItem(treeView);
machine.SearchProperties.Add(WinTreeItem.PropertyNames.Name, "Machine1");
Mouse.Click(machine); // This code gives an error
如果失败的另一件事是从树视图中删除应用程序并添加窗口标题。
让我知道如果您有任何问题。
var treeView = new WinWindow();
treeView.WindowTitles.Add("mywindowname");
treeView.SearchProperties.Add(WinWindow.PropertyNames.ControlName, "m_tvPlantStructureView");
var machine= new WinTreeItem(treeView);
machine.SearchProperties.Add(WinTreeItem.PropertyNames.Name, "Machine1");
Mouse.Click(machine); // This code gives an error
做鼠标CLIK之前,我进行使用
machine.Find();
之后,搜索控制的,我检查,如果机器有不同的空值,如果是它不为空,我执行点击。
你在说什么控制? DevExpress,Infragistics,您的自定义控件还是普通.NET? – nikita