c# - 尝试使用 Visual Studio UI 测试器时出现 FailedToperformActionOnBlockedControlException

标签 c# wpf windows ribbon

我正在尝试使用 Visual Studio 为我使用 WPF 的 C# 中的 UI 项目进行一些 UI 测试。

所以我创建了一个测试项目,并开始创建编码的 UI 测试,如 Microsoft 教程中所述:http://msdn.microsoft.com/en-us/library/dd286681%28v=vs.100%29.aspx .

但是当我启动测试时,出现以下异常:

MyProjectTestsUnitaires.CodedUITest1.CodedUITestMethod1 test method threw an exception:
Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnBlockedControlException: Control is blocked by another control. Make the blocked control visible and retry.

当我单击 Windows 功能区的一个按钮时,此附加。更准确地说,当我研究为这个测试生成的代码时,这里是我所拥有的:

WpfTabList uIRibbonTabList = this.UIProjectWindow.UIRubbanCustom.UIRibbonTabList;
            WpfTabPage uIONGLET2TabPage = this.UIProjectWindow.UIRubbanCustom.UIRibbonTabList.UIONGLET2TabPage;
            WinListItem uIImagesjpgListItem = this.UIOuvrirWindow.UIItemWindow.UIVuedélémentsList.UIImagesjpgListItem;
            #endregion

        ApplicationUnderTest MyProjectApplication = ApplicationUnderTest.Launch(this.RecordedMethod1Params.ExePath, this.RecordedMethod1Params.AlternateExePath);

        // Clic 'Ribbon' liste d'onglets
        Mouse.Click(uIRibbonTabList, new Point(0, 82));

        // Clic 'ONGLET2' onglet
        Mouse.Click(uIONGLET2TabPage, new Point(-152, 58));

        // Clic 'ONGLET2' onglet
        Mouse.Click(uIONGLET2TabPage, new Point(-129, 53));

        // Double-clic 'images.jpg' élément de liste
        Mouse.DoubleClick(uIImagesjpgListItem, new Point(25, 60));

我在这段代码中看到,点击是在功能区的 ONGLET2 上执行的,它是第二个标题,而它在屏幕上不可见。点击将在第一个 header ONGLET1 上注册。

我们如何通过 Windows 功能区使用 UI 测试?

谢谢你的帮助

最佳答案

这是一个老问题,不幸的是我不知道如何回答它,但如果你通过谷歌搜索“FailedToperformActionOnBlockedControlException”来到这里,我可能会提供帮助......这里的问题是一些其他控件正在阻止控制您要采取的行动。调试这种东西的第一步是确定哪个控件阻止了你想要的控件。无论您是在录制还是手动编码(如果您还没有,请切换到手动编码——相信我,从长远来看,这会为您节省时间),使用 CodedUi 测试生成器来获取阻塞控件上的属性.在 VS 2015 中,将光标置于测试方法中,然后选择“测试”>“为 CodedUI 测试生成代码”>“使用 CodedUI 测试生成器”。一旦您的控件可见,单击并拖动灰色的“目标”图标,直到您在要选择的对象周围看到一个矩形。放手,您将获得有关阻止控件的元数据。从那里,您可以决定使用该控件(如果您正在单击),使用该控件获取相对点,或找到另一个创造性的解决方案。希望对您有所帮助!

关于c# - 尝试使用 Visual Studio UI 测试器时出现 FailedToperformActionOnBlockedControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23108458/

相关文章:

c# - Type.GetType ("System.Net.WebException")返回 null

c# - String.Format 函数不起作用

c# - 如何在 C# 或 F# 中使用 Travis-CI

wpf - 响应式 WCF 客户端的双工回调或客户端线程

环绕面板中用户控件的 WPF MVVM 动态集合

c# - UuidCreate 是否使用 CSPRNG?

python - 对 paramiko 和 pycrypto 有一个奇怪的问题

windows - 如何以编程方式模拟文件损坏以测试 ReFS 健康检查和恢复功能?

c# - Entity Framework OfType()

c# - Binding 没有 Clone 方法,复制它的有效方法是什么