Ranorex像其他的自动测试工具一样,可以设定系统查找某个对象时最大的查找时间,也就是超时时间。如果对象在该时间范围内仍然没有找到,Ranorex就终止查找,运行其后的代码。
某个对象是否存在可以用类似如下的代码进行检查:
repo.SimpleGUI.SelfInfo.Exists()
其中SelfInfo可以看做是SimpleGUI的对象属性。当我们运行这句代码的时候,如果SimpleGUI存在,该代码将立刻执行结束,进入下一句。如果不存在,Ranorex会不断地查找,直到SimpleGUI出现或者超时时间达到。
那么如何查看和设置某个对象的超时时间呢?可以使用对象的SearchTimeOut属性。
下面是一个例子:
void ITestModule.Run()
{
Mouse.DefaultMoveTime = 300;
Keyboard.DefaultKeyPressTime = 100;
Delay.SpeedFactor = 1.0;
WaitingTimeTest();
}
void WaitingTimeTest()
{
Report.Info(“Start timeout test!”);
Report.Info(repo.SimpleGUI.SearchTimeout.ToString());
repo.SimpleGUI.SearchTimeout = new Duration(1000);
Report.Info(repo.SimpleGUI.SelfInfo.Exists().ToString());
Report.Info(“End timeout test!”);
}
运行这段代码,我们会发现,Ranorex对SimpleGUI设置的SearchTimeOut是30s,这个时间是比较长的,如果SimpleGUI已经运行,那么其实是没有什么影响的,SelfInfo.Exists()这句会很快返回。但是如果SimpleGUI并未运行,那么Ranorex需要30秒才会超时退出。所以我们在代码里面将该超时时间设为1秒,整个测试就会更快地结束。