测试运行器在重播期间找不到控件

斯蒂芬·温克勒(Steffen Winkler)

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

第一个涉及单击托盘图标并从中选择一个条目-效果很好。

第二种情况比较复杂,我想在WPF窗口中填写表格,然后单击一些按钮。

录音没有问题,但是重放根本不起作用。它应该首先选择一个TabItem,再选择一个位于先前选择的TabItem内的另一个TabItem,然后填写文本字段并按一个按钮,并确认两次消息对话。

问题是,TestRunner无法找到我的任何控件。即使我选择正确的TabItem并尝试执行“在此处输入someText”步骤之一,它也会花费一些时间,然后抛出一个异常,粗略地翻译为该异常表明无法重播所选步骤之所以完成,是因为它找不到与搜索属性(?)相匹配的控件。然后跟随一个列表:

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

所有这些都是正确的。如果我尝试执行不同的测试步骤,则说明基本相同,但不是“ ControlType:TabPage”,而是“ ControlType:Edit”。

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

编辑

在简化测试“案例”(只需单击直接位于“窗口” /第一个网格中的中止按钮)并编辑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,但仍然失败。另外,我不确定这是否正确,但是搜索似乎未包含具有该按钮的窗口的名称/ automationID。由于那时我已经在应用程序中打开了两个窗口,因此我可以想象这是问题所在。

斯蒂芬·温克勒(Steffen Winkler)

我检查了MTM生成的UI测试,方法是将其加载到已编码的UI测试项目中。我打开了UI控件地图,发现出了什么问题:

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

这样做的原因是,NameMTM /编码UI测试没有使用WPF窗口属性,而是使用该Title属性作为窗口的标识符(wtf?)。

解决方案:

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

提示人们有一个类似的问题:这也可能有助于增加MaxLevelsForItemContainer的价值mtm.exe.config是位于文件Common7\IDE的Visual Studio安装文件夹中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在赛普拉斯测试运行器中找不到文件

来自分类Dev

Django测试运行器找不到非默认数据库连接

来自分类Dev

在赛普拉斯测试运行器中找不到文件

来自分类Dev

在测试运行期间浏览

来自分类Dev

可以在测试运行期间获得先前的测试

来自分类Dev

Chutzpah Visual Studio测试运行程序找不到JS参考

来自分类Dev

Web测试运行期间无效的URI错误

来自分类Dev

Web测试运行期间无效的URI错误

来自分类Dev

业力测试运行器-无法捕获Chrome

来自分类Dev

是否有PHPUnit的分层测试运行器?

来自分类Dev

多个HTML记者Karma测试运行器

来自分类Dev

业力测试运行器-无法捕获Chrome

来自分类Dev

在每次测试之后,让NUnit控制台在测试运行期间报告测试结果

来自分类Dev

普通测试测试运行期间啤酒调用失败

来自分类Dev

Rails 4.2:如何在正常测试运行期间排除性能测试

来自分类Dev

普通测试测试运行期间啤酒调用失败

来自分类Dev

在测试运行时类型检查期间如何模拟Python类?

来自分类Dev

计算单元测试运行期间发生的gc的数量

来自分类Dev

网格在测试运行期间未遵循“平台”要求

来自分类Dev

Webtest:在测试运行期间编辑上下文参数

来自分类Dev

着色golang测试运行输出

来自分类Dev

作为Maven测试运行

来自分类Dev

再现ScalaCheck测试运行

来自分类Dev

Couchbase测试运行失败

来自分类Dev

Intellij测试运行历史

来自分类Dev

测试运行null和字母?

来自分类Dev

Serverspec测试运行问题

来自分类Dev

使用JUNIT测试运行AsyncHttpClient

来自分类Dev

使用R#测试运行器运行ReSharper插件测试