2016-08-30 44 views
1

了一些隨機問題與尋找控制。問題發生在位於選項卡中的控件。我確實使用了一些邏輯來選擇標籤,如果沒有選擇並獲得控制權。例如我在WPF應用程序3個功能區選項卡:Teststack.White並不總是發現標籤的子控件

mTarget.Tabs.ATab.FindTab(); 
mTarget.Tabs.ATab.SelectTab(); 
mTarget.Tabs.ATab.FindAndValidateTreeView(); 

代碼總是發現使用標題文本中FindTab的標籤()方法:

var criteria = SearchCriteria.ByText(mTabTitle); 
mTabPage = mMainWindow.Get<TabPage>(criteria); 

但不總能找到的標籤時標籤內的控制在測試之前就已經選定:

// TreeView 
var mTree = TabPage.Items.Find(x => x.Id == TabNames.TREE_ID && x.Name == TabNames.TREE_ID) as Tree; 

類似的隨機問題找子控件,當我與像絲帶組其他控件得到。我唯一注意到的是,如果我選擇另一個選項卡並重新運行測試不會失敗。

爲什麼發生這種情況,以及如何克服這個問題? 我在緩存中使用默認的白色設置。

回答

1

一旦它已經找到它可能無法找到控制第二次,所以我不得不通過轉換爲類變量,以提高我的代碼:

// TreeView 
if (mTree == null) 
    mTree = TabPage.Items.Find(x => x.Id == TabNames.TREE_ID && x.Name == TabNames.TREE_ID) as Tree;