我有一个Control,它是Parent的第一个子项,但在Parent和Control中没有任何内容。我可以找到第二个孩子的独特属性,所以我需要找到以前的第二个孩子的兄弟姐妹
答案 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给出了兄弟姐妹的一些细节。