编码的UI测试winforms菜单项标识错误

时间:2018-03-06 08:23:13

标签: visual-studio-2017 windows-10 menuitem coded-ui-tests

我使用断言功能来识别控件。当我使用断言函数进行编码UI测试(Ctrl + Shift + I)时,在Windows 10上运行的.NET应用程序中的菜单项总是被识别在错误的位置。我使用Visual Studio 2017 Enterprise(版本15.5.7)。

我的光标位于“Öffnen”菜单项,但MSAA认为它是“Speichern”菜单项。它似乎转移到一个菜单项。

对于其他应用,控制识别工作正常。这个特定的应用程序似乎有问题。

使用Coded UI Test Builder会出现什么问题?

Wrong menu item identification

更新

我还尝试将2的{​​{1}}的默认值从5增加到CodedUITestBuilder.exe.config,但未成功。

MaxLevelsForItemContainer方法也不起作用。

3 个答案:

答案 0 :(得分:0)

屏蔽Spiechern按钮的Öffnen按钮可能存在问题 -  至少测试构建者看到它。

尝试通过在测试构建器中使用父子导航器导航到Öffnen按钮(按钮按钮4个箭头围绕蓝色框,RetryAdd Assertion旁边),然后使用NextSibling()方法进行识别。这看起来像是:

// Clicks Öffnen - Change NextSibling()to be whatever filial relation is required
var offnen = new WpfButton();
offnen = offnen.SearchProperties.Add(WpfButton.PropertyNames.Name, "Spiechern").NextSibling();
offnen.Click();

如果不起作用,请将您的测试设置为使用Spiechern按钮的标识,然后更改需要点击Öffnen按钮的部分,以点击Spiechern上方的稍微上方{1}}按钮。那看起来像是:

// Clicks Öffnen - Change xOffset and yOffset to whatever is required to click Öffnen 
var spiechern = new WpfButton();
spiechern= spiechern.SearchProperties.Add(WpfButton.PropertyNames.Name, "Spiechern");
Mouse.Click(spiechern, new Point(xOffset, yOffset));

答案 1 :(得分:0)

通过使用菜单键盘快捷键并浏览菜单并记录下来,我能够做我想做的事。

在这种情况下可能的解决方案:

  • 使用键盘快捷键

答案 2 :(得分:0)

从版本15.5.7到15.6.1的Visual Studio 2017 Enterprise更新后,菜单项被正确识别。我不知道我在系统上做了任何其他更改,但自更新以来它似乎有效。

解决方案:

  • 更新Visual Studio 2017