我已经在其中编写了很多WaitForControlExists
的ui测试。这导致我的测试运行缓慢。
基本上如果Playback.PlaybackSettings.SearchTimeout = 30000;
和我有uicontrol.WaitForControlExists()
,从方法获得反馈需要30秒,即使控件在1秒后显示。
现在我想知道控制存在后是否有办法退出WaitForControlExist
?说,我“轮询控制存在”而不是“等待控制存在”。
我将轮询计时器设置为1秒。意思是如果控件存在,我每秒检查一次。如果它在2秒后显示(或者不到30秒),则返回true并停止轮询,如果在30秒内没有继续尝试,则退出并返回false。
答案 0 :(得分:2)
您可以按照以下方式进行设置:
var exists = uiControl.WaitForControlExists(100);
var counter = 0;
while(!exists)
{
Playback.Wait(1000);
counter++;
exists = uiControl.WaitForControlExists(100);
if(counter>30)
break;
}
您也可以尝试使用WaitForControlReady
答案 1 :(得分:1)
使用uiControl.WaitForControlCondition(control => control.Condition,timeout);
通过这种方式,您可以在继续执行之前混合并匹配您想要满足的控制条件。
对我来说最有用的是控制状态和风格。 玩得开心:)