我正在尝试为 WPF 应用程序编写 UI 测试用例。这包括一个搜索文本框。在向文本框提供输入时,搜索输入字符串是在后台线程中完成的。
这是我的基本代码:
public void TestMethod1()
{
var applicationDirectory = @"C:\projects\dev\source\bin\Debug";
var applicationPath = Path.Combine(applicationDirectory, "Some.exe");
Application application = Application.Launch(applicationPath);
Window mainWindow = application.GetWindow("Window Title");
mainWindow.Get<TextBox>().Text = "testing things out";
Assert.IsTrue(true);
mainWindow.Dispose();
application.Dispose();
}
现在在我设置Text
属性的那一行,后台工作将启动,框架抛出异常:
TestStack.White.UIItems.UIActionException :窗口没有响应,等待 50000 毫秒后
基本上,框架会等待配置的时间,然后由于后台工作未及时完成而引发异常。
我检查了文档,它提到了一种解决方法,但这将涉及我更改我的应用程序代码。由于这是一个遗留应用程序,我不想更改代码(我们正在迁移,因此希望限制代码更改)。
这似乎是一个普遍的问题,但一直无法看到任何解决方案?有任何想法吗?
更新 以下代码确实有效,但仍未接近找到原始问题的解决方案。
mainWindow.Get<TextBox>().BulkText = "testing things out";