2015-09-17 63 views
1

我正在使用TestStack.White來執行自動化UI測試。我遇到的一個問題是,單擊一個可以調出新屏幕的按鈕後,元素樹不會更新。刷新白色自動化元素樹

使用UI Automation驗證的白色工作驗證(Microsoft工具),所以如果您找不到使用該工具的元素,White將無法找到它。

如果我打開應用程序,單擊按鈕以渲染視圖,然後打開UI自動驗證,然後在該工具中顯示該新視圖中的所有字段。但是,如果在單擊按鈕之前將UI自動驗證打開,則新視圖不會顯示在工具中。因此,我似乎需要簡單地刷新元素樹。

有什麼辦法可以在C#中做到這一點,這樣我的白色測試將能夠看到這些新的渲染元素?

回答

1

我有同樣的問題(從創建到控制簡單地改變現有的控制的可見性切換時)。 在此代碼工作之前:

checkButton.Toggle(); 

之後它沒有。解決方案是使用

Mouse.Instance.Click(checkButton.ClickablePoint); 

來代替。

不知何故,當您直接使用鼠標對象時,TestStack/White會更好地響應並刷新UI。

0

您是否嘗試過InitializeOption.WithCache選項?

Window modalWindow = mainWindow.ModalWindow(SearchCriteria.ByText("Modal Window"), InitializeOption.WithCache); 
modalWindow.ReloadIfCached(); 
//or 
modalWindow.ReInitialize(InitializeOption.WithCache); 
+0

是的,我已經嘗試了這兩個,但沒有成功:( –

+0

似乎你必須重新連接你的進程到White.Application,然後再次找到主應用程序窗口 – unickq

+0

剛試過這個,它也不工作: TestStack.White.Application.Attach(「Portal」); mainWindow = myApplication.GetWindow(SearchCriteria.ByClassName(「Window」),InitializeOption.WithCache); –