Teststack.White并不总能找到Tab的子控件

时间:2016-08-30 19:21:31

标签: c# ui-automation

找到控件有一些随机问题。问题发生在选项卡中的控件上。如果没有选择,我会使用一些逻辑来选择选项卡并获得控件。例如,我在WPF应用程序中有3个功能区选项卡:

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;

类似随机问题我在查看子控件时使用其他控件(如Ribbon组)。我唯一注意到的是,如果我选择另一个选项卡并重新运行测试,则不会失败。

为什么会发生这种情况以及如何解决这个问题? 我在缓存时使用默认的白色设置。

1 个答案:

答案 0 :(得分:1)

它可能无法第二次找到控件,所以我必须通过转换为类变量来改进我的代码:

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