有没有办法在Coded UI中找到以前的兄弟

时间:2016-02-05 12:32:25

标签: c# coded-ui-tests

我有一个Control,它是Parent的第一个子项,但在Parent和Control中没有任何内容。我可以找到第二个孩子的独特属性,所以我需要找到以前的第二个孩子的兄弟姐妹

2 个答案:

答案 0 :(得分:1)

可以通过使用控件上的SearchConfiguration属性来实现。 你要做的是搜索标签,然后你实例化一个WinEdit控件并将其传递给标签搜索控件。接下来,在WinEdit实例上设置SearchConfiguration.Add(SearchConfiguration.NextSibling) 现在,这将搜索文本标签的下一个兄弟。 在代码示例中,如下所示:

 var app = ApplicationUnderTest.Launch(@"yourapplication.exe");
 var mainWindow = new WinWindow(app);
 mainWindow.WindowTitles.Add("Form1");

 WinText textLabel = new WinText(mainWindow);
 textLabel.SearchProperties.Add(WinControl.PropertyNames.Name, "Some Text Label");

 WinEdit siblingEditControl = new WinEdit(textLabel);
 siblingEditControl.SearchConfigurations.Add(SearchConfiguration.NextSibling);
 siblingEditControl.Text = "setting the text";

答案 1 :(得分:0)

没有直接的方法来获得兄弟姐妹。找到控件的兄弟姐妹的一种方法是找到其父级,然后找到该父级的所有子级。接下来搜索子项以查找当前控件,然后执行上一个控件。该方法可以基于以下内容。它使用控件的Name字段进行比较,这对于一般情况可能不正确,我建议尝试其他值。

public UITestControl GetPreviousSibling(UITestControl uitc)
{
    UITestControlCollection siblings = uitc.GetParent().GetChildren();
    // Note that 'sibings[0]' has no predecessor
    for (int ii=1; ii<siblings.Count)
    {
        if (uitc.Name == siblings[ii].Name)
        {
            return siblings[ii - 1];
        }
    }

    return null;
}

兄弟姐妹的定义&#34;不清楚。这个MSDN blog给出了兄弟姐妹的一些细节。