coded ui 控制轮询而不是等待控制存在
coded ui control polling instead of wait for control exists
我编写了 ui 测试,其中包含很多 WaitForControlExists
。这导致我的测试 运行 变慢。
基本上如果 Playback.PlaybackSettings.SearchTimeout = 30000;
并且我有 uicontrol.WaitForControlExists()
从该方法获得反馈需要 30 秒,即使控件在 1 秒后显示。
现在我想知道是否有一种方法可以在控件存在时立即退出 WaitForControlExist
?比如说,我 "Poll the Control Exists" 而不是 "Wait For Control Exists"。
我会将轮询计时器设置为 1 秒。这意味着我每秒检查一次控件是否存在。如果它在 2 秒后显示(或任何少于 30 秒的时间)return true 并停止轮询,如果在 30 秒后不继续尝试每秒,quit 和 return false .
您可以设置如下:
var exists = uiControl.WaitForControlExists(100);
var counter = 0;
while(!exists)
{
Playback.Wait(1000);
counter++;
exists = uiControl.WaitForControlExists(100);
if(counter>30)
break;
}
您也可以尝试使用 WaitForControlReady
使用uiControl.WaitForControlCondition(控制=>control.Condition,超时);
有了这个,您可以在继续执行之前混合和匹配您希望满足的控制条件。
对我来说最有用的是控件的状态和样式。
玩得开心:)
我编写了 ui 测试,其中包含很多 WaitForControlExists
。这导致我的测试 运行 变慢。
基本上如果 Playback.PlaybackSettings.SearchTimeout = 30000;
并且我有 uicontrol.WaitForControlExists()
从该方法获得反馈需要 30 秒,即使控件在 1 秒后显示。
现在我想知道是否有一种方法可以在控件存在时立即退出 WaitForControlExist
?比如说,我 "Poll the Control Exists" 而不是 "Wait For Control Exists"。
我会将轮询计时器设置为 1 秒。这意味着我每秒检查一次控件是否存在。如果它在 2 秒后显示(或任何少于 30 秒的时间)return true 并停止轮询,如果在 30 秒后不继续尝试每秒,quit 和 return false .
您可以设置如下:
var exists = uiControl.WaitForControlExists(100);
var counter = 0;
while(!exists)
{
Playback.Wait(1000);
counter++;
exists = uiControl.WaitForControlExists(100);
if(counter>30)
break;
}
您也可以尝试使用 WaitForControlReady
使用uiControl.WaitForControlCondition(控制=>control.Condition,超时);
有了这个,您可以在继续执行之前混合和匹配您希望满足的控制条件。
对我来说最有用的是控件的状态和样式。 玩得开心:)