C# 尝试使用Visual Studio UI tester时出现FailedOperationOnBlockedControlException异常

C# 尝试使用Visual Studio UI tester时出现FailedOperationOnBlockedControlException异常,c#,wpf,windows,ribbon,C#,Wpf,Windows,Ribbon,我正试图用visualstudio为我的UI项目在c和WPF中进行一些UI测试 因此,我创建了一个测试项目,并开始创建编码的UI测试,如Microsoft教程中所述: 但当我启动测试时,我有以下例外: MyProjectTestsUnitaires.CodedUITest1.CodedUITestMethod1 test method threw an exception: Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPer

我正试图用visualstudio为我的UI项目在c和WPF中进行一些UI测试

因此,我创建了一个测试项目,并开始创建编码的UI测试,如Microsoft教程中所述:

但当我启动测试时,我有以下例外:

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));
通过这段代码,我看到单击是在ribbon的ONGLET2上执行的,这是第二个标题,而它在屏幕上不可见。点击会在第一个标题ONGLET1上注册

如何在windows功能区中使用UI测试


谢谢你的帮助

这是一个老问题,不幸的是我不知道如何回答,但如果你通过谷歌搜索FailedOperationonBlockedControlException来到这里,我也许可以帮你。。。这里的问题是一些其他控件正在阻止您尝试操作的控件。调试这类事情的第一步是确定哪个控件正在阻止所需的控件。无论您是正在录制还是手动编码,如果您还没有,请切换到手动编码-相信我,从长远来看,这将节省您的时间,请使用CodedUi测试生成器获取阻塞控件的属性。在VS 2015中,将光标放在测试方法中,然后选择测试>为CodedUI测试生成代码>使用CodedUI测试生成器。控件可见后,单击并拖动灰色目标图标,直到看到要选择的对象周围有一个矩形。放手,您将拥有阻塞控件上的元数据。从那里,您可以决定在单击时使用该控件,使用该控件获取相对点,或者找到另一个创造性的解决方案。希望有帮助