Ron*_*ald 7 c# testing multithreading automated-tests teststack
我是使用 FLAUI 和自动化测试的新手,想用它来测试我的系统。目前,我正在使用 Thread.Sleep() 等待应用程序启动,然后找到登录文本框。有没有比使用 Thread.Sleep() 更有效的方法?
目前,我启动应用程序并使用 Thread.sleep(10000) 等待应用程序完全启动并且可以找到登录文本框,然后单击控件输入密码以进入应用程序。但是我知道 Thread.Sleep 是告诉系统等待的最糟糕的方法,尤其是在自动化测试中。有人可以提供我可以测试的其他东西吗?
小智 7
最好使用重试机制并等待主窗口加载并且控件可见。例如,调用 Application.Launch 后,您可以重试最多 30 秒来查找主窗口和其中的 txtLogin:
Retry.WhileException(() =>
{
using (var automation = new UIA3Automation())
{
Window mainWindow = Application.GetMainWindow(automation, TimeSpan.FromSeconds(60));
Assert.IsNotNull(Mainwindow, "Main window is not found");
TextBox loginTextBox = mainWindow.FindFirstDescendant(x => x.ByAutomationId("txtLogin")).AsTextBox();
Assert.IsNotNull(loginTextBox, "txtLogin is not found");
}
}, TimeSpan.FromSeconds(30), null, true);
Run Code Online (Sandbox Code Playgroud)