2017-01-18 45 views
2

我已經編寫了很多WaitForControlExists在他們的UI測試。這會導致我的測試運行緩慢。編碼的UI控制輪詢,而不是等待控制存在

基本上,如果Playback.PlaybackSettings.SearchTimeout = 30000;和我有uicontrol.WaitForControlExists()它需要30秒從該方法獲得反饋,即使控制顯示在1秒後。

現在我想知道一旦控件存在,是否有辦法退出WaitForControlExist?說,我「輪詢控制存在」而不是「等待控制存在」。

我將設置輪詢計時器爲1秒。意思是如果控制存在,我會檢查每一秒。如果它在2秒後顯示(或者小於30秒),則返回true並停止輪詢,如果在30秒內沒有繼續嘗試每秒,則退出並返回false。

回答

1

使用uiControl.WaitForControlCondition(控制=> control.Condition,超時);

使用此功能,您可以在繼續執行之前混合和匹配您想要滿足的控制條件。

對我來說最有用的是控制和風格的狀態。 玩得開心:)

2

如下,您可以將它設置:

var exists = uiControl.WaitForControlExists(100); 
var counter = 0; 
while(!exists) 
{ 
    Playback.Wait(1000); 
    counter++; 
    exists = uiControl.WaitForControlExists(100); 
    if(counter>30) 
     break; 
} 

你也可以嘗試使用WaitForControlReady