【问题标题】:Coded UI test click throws hidden control exception in windows 10 but works on windows 7编码的 UI 测试单击在 Windows 10 中引发隐藏控件异常,但在 Windows 7 上有效
【发布时间】:2026-02-01 18:55:01
【问题描述】:

我正在使用 Visual Studio 2017 CUIT 并尝试自动右键单击通知溢出区域中的应用程序图标。右键单击它会显示退出菜单项。然后应该单击此项目,但未能抛出异常。而相同的代码在 Windows 7 上运行良好。

测试方法 CodedUITestProject1.CodedUITest2.CodedUITestMethod1 抛出异常:

Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnHiddenControlException: 无法对隐藏控件执行“单击”。额外细节: 技术名称:“MSAA”可访问名称:“上下文”类名: '#32768' 控件类型:'窗口' ---> System.Runtime.InteropServices.COMException:来自 HRESULT 的异常: 0xF004F002

下面是sn-p的代码:

public void RecordedMethod2()
    {
        #region Variable Declarations
        WinButton uINotificationChevronButton = this.UIItemWindow.UINotificationChevronButton;
        WinButton uIItemButton = this.UIItemWindow1.UIOverflowNotificationToolBar.UIItemButton;
        WinWindow uIItemWindow2 = this.UIItemWindow2;
        #endregion

        // Click 'Notification Chevron' button
        Mouse.Click(uINotificationChevronButton, new Point(15, 26));

        // Right-Click button numbered 3 in 'Overflow Notification Area' tool bar
        Mouse.Click(uIItemButton, MouseButtons.Right, ModifierKeys.None, new Point(25, 30));

        // Click window
        Mouse.Click(uIItemWindow2, new Point(608, 319));
    }

【问题讨论】:

    标签: c# coded-ui-tests


    【解决方案1】:

    你的win7机器的屏幕分辨率和你的win10机器一样吗?您可以尝试不带坐标参数的 Mouse.Click() 方法重载,因为在不同的屏幕分辨率上使用相同的坐标效果不佳。

    【讨论】: