我正在尝试使用 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/