我最近开始使用编码的 UI 测试来自动化我的 Windows 应用程序,并且在访问一些 MSAA 控件时遇到了问题。我正在手动编码我的自动化,不想将控件添加到 UI Map 然后使用它。
我卡住的控件是左窗格上的一个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
错误-
Microsoft.VisualStudio.TestTools.UITest.Extension.UITestControlNotFoundException:播放未能找到具有给定搜索属性的控件。其他详细信息: TechnologyName:'MSAA' ControlType:'TreeItem' 名称:'Machine1' ControlName:'m_tvPlantStructureView' ---> System.Runtime.InteropServices.COMException:错误 HRESULT E_FAIL 已从对 COM 组件的调用中返回。
参考附件。让我知道,有什么问题以及要遵循什么过程才能完全摆脱这种未来无法识别的控制错误。
目前,我遵循的方法是做一个十字准线并获取属性,然后对该控件的属性进行编码以自动化用户操作和断言。但这种方式并不总是奏效。
让我知道是否有更好的方法。