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

Coded UI Test winforms menu item identification wrong

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

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

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

使用 Coded UI Test Builder 可能有什么问题?


更新

我也尝试在 CodedUITestBuilder.exe.config 中将 MaxLevelsForItemContainer 从默认值 2 增加到 5 但没有成功。

SearchConfiguration.NextSibling()方法也不行。

这可能是 Spiechern 按钮遮住了 Öffnen 按钮的问题 - 至少就测试构建器而言是这样。

尝试通过使用测试构建器中的父子导航器导航到 Öffnen 按钮(按钮 button 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 按钮。看起来像:

// 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));

我能够通过使用菜单键盘快捷键并在菜单中导航并记录下来来完成我想做的事情。

本例可能的解决方案:

  • 使用键盘快捷键

Visual Studio 2017 企业版从版本 15.5.7 更新到 15.6.1 后,菜单项被正确识别。我不知道我对我的系统做了任何其他更改,但自从更新后它似乎起作用了。

解决方案:

  • 更新 Visual Studio 2017