Teststack.白色并不总能找到Tab's的子控件

本文关键字:控件 Tab 白色 Teststack | 更新日期: 2023-09-27 18:04:42

在查找控件时遇到了一些随机问题。位于选项卡中的控件发生问题。我确实使用一些逻辑来选择选项卡,如果没有选择并获得控制。例如,我在WPF应用程序中有3个ribbon选项卡:

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

代码总是使用FindTab()方法中的标题文本查找制表符:

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

但是,当tab在测试之前已经被选中时,并不总是在tab中找到控件:

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

类似的随机问题,我得到其他控件,如Ribbon组时寻找子控件。我注意到的唯一一件事是,如果我选择另一个选项卡并重新运行测试将不会失败。

为什么会发生这种情况,如何解决这个问题?

Teststack.白色并不总能找到Tab's的子控件

它可能无法找到第二次控制,所以我不得不通过转换为类变量来改进我的代码,一旦它已经找到:

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