我正在使用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()
但这并不是我真正想要的。