Test Runner在重放期间无法找到控件

时间:2015-10-30 15:18:22

标签: wpf microsoft-test-manager visual-studio-test-runner

我刚开始使用Microsoft Test Manager 2015并构建了两个测试用例。

第一个涉及点击托盘图标并从那里选择一个条目 - 工作正常。

第二种情况有点复杂,我想在WPF窗口中填写表单并单击某些按钮。

录音没有问题,但重播根本不起作用。它应该从选择一个TabItem开始,选择另一个TabItem,它位于上一个选定的TabItem中,然后填写文本字段并按一个按钮确认两个消息对话框。

问题是,TestRunner无法找到任何控件。即使我选择了正确的TabItem并尝试执行其中一个'在这里输入someText'步骤,它也需要一些时间然后在我的脸上抛出一个异常,大致翻译后说,所选步骤的重放不能完成,因为它找不到与搜索属性(?)匹配的控件。然后是List:

TechnologyName: 'UIA'
FrameworkId: 'WPF'
ControlType: 'TabPage'
AutomationId: 'sometabname'

所有这一切都是正确的。如果我尝试执行不同的测试步骤,它基本上说的是相同的东西,而不是'ControlType:TabPage',它说'ControlType:Edit'。

我不确定如何从这里开始。我做了一些搜索,但我能找到的只是关于UIAutomation配置/设置的问题,但据我所知,我不能直接在MTM中影响/控制它。

修改

在简化测试'case'之后(只需单击直接放在Window / first网格中的中止按钮)并编辑mtm.exe.config文件并启用跟踪/日志记录,我从相应的日志文件中得到了这个:

mtm.exe, Playback - [WARNING] Internal warning: Target element "[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave'" was not found, so all intermediate elements were ignored. An incorrect element that matches target element Id can be found as the result. Verify that all intermediate elements in QueryId have valid and unique Ids
mtm.exe, Playback - [WARNING] Internal warning: Search failure: [UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave' | Performed (4) searches, UI element not found
mtm.exe, Playback - {1} [FAILED] Function ElementFetcher::FindScreenElement failed to locate UI element (;[UIA]FrameworkId='WPF' && ControlType='Button' && AutomationId='closeWithoutSave') (Das angegebene Objekt wurde nicht gefunden.) 

这里奇怪的是,我甚至在该按钮上设置了Automation.AutomationID,但它仍然失败了。此外,我不确定这是否正确,但搜索似乎不包括具有该按钮的Window的名称/ automationID。从那时起,我在应用程序中打开了两个窗口,我可以想象这就是问题所在。

1 个答案:

答案 0 :(得分:1)

我检查了MTM生成的UI测试,将其加载到Coded UI测试项目中。我打开了UI控制图,看到了什么错误:

TabControl / TabPage导航与TrayIcon的ContextMenu分组在同一个窗口中。

原因是,MTM / Coded UI测试不是使用WPF窗口的Name属性,而是使用Title属性作为Window的标识符(wtf?)。 / p>

解决方案:

将我的WPF配置窗口的Title属性设置为Configuration并重做受影响的测试步骤解决了这个问题。

对于类似问题的人

提示:它还可能有助于增加位于的MaxLevelsForItemContainer文件中的mtm.exe.config值Visual Studio安装文件夹的Common7\IDE