首页 > 解决方案 > VS2019 测试资源管理器由于焦点错误导致点击失误

问题描述

我正在使用Visual Studio 2019, 并WinAppDriver在一个简单的WPF Application.
为此,我使用集成在 VS 中的测试资源管理器。
问题:当我通过它运行我的测试时,Test Explorer它会在后台(在 Visual Studio 后面)打开我想要的窗口;然后它在正确的位置执行 clicks`,但是鼠标在我的 Visual Studio 中单击,而不是在我想要的应用程序窗口上,因为它没有被带到前面。

当我以Debug模式启动测试时,一切正常。窗口打开集中在前面。点击点击右键等。所以我的代码不会是问题吗?!

我尝试等待它准备好(可点击),然后再点击:

private void WaitFindClick(string id, string wpf_type)
{
    var wait = new DefaultWait<WindowsDriver<WindowsElement>>(session);
    wait.Timeout = TimeSpan.FromSeconds(5);
    wait.PollingInterval = TimeSpan.FromMilliseconds(100);
    wait.IgnoreExceptionTypes(typeof(InvalidOperationException));
    wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath($"//{wpf_type}[@AutomationId=\"{id}\"]")));
    session.FindElementByAccessibilityId(id).Click();
}

总结一下,在模式下Test Explorer工作正常Debug,但在normal模式下它不能正确打开应用程序但不会将其置于前面,因此单击将命中 Visual Studio 而不是所需的应用程序。

出了什么问题?如何修复Test Explorer自动将测试应用程序置于最前面?

我希望我就在这里。这是我的第一个问题,所以如果我错过了某事,请告诉我。祝你有美好的一天,提前感谢!

编辑:我通过Window.Topmost = true;在我的 -Constructor 中设置属性找到了一种解决方法,MainWindow()但这并不是我真正想要的。

标签: c#unit-testingvisual-studio-2019test-explorerwinappdriver

解决方案


推荐阅读