使用Coded UI Test从列表框中获取所有值并选择它

时间:2013-08-06 11:31:22

标签: vb.net coded-ui-tests

我在编码的ui测试中使用uimap来获取有关应用程序中控制器的信息,为列表框返回的值是“client” - controlType,technologyname MSAA和Name = session。 我的目标是能够获取列表框的所有值,然后使用代码选择一个值。 有没有办法做到这一点 ? 非常感谢。

2 个答案:

答案 0 :(得分:3)

给定列表框的UITestControl对象,您应该能够使用GetChildren方法获取所有列表条目。它返回一个包含父控件的所有子控件的集合。根据列表框的精确结构及其内容,您可能需要重复调​​用该方法以获取孙子或更深层次的控件。

请参阅http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.uitesting.uitestcontrol.getchildren.aspx

<强>更新

在C#中,您可以根据以下内容编写代码:

foreach (UITestControl child in parent.GetChildren()) {
    if ( someTestOfTheControl(child) ) {
        ... process the child control here ...
    }
}

或者可能

foreach (UITestControl child in parent.GetChildren()) {
    foreach (UITestControl grandChild in child.GetChildren()) {
        if ( someTestOfTheControl(grandChild) ) {
            ... process the grandChild control here ...
        }
    }
}

someTestOfTheControl()测试控件是否是您感兴趣的控件。

答案 1 :(得分:0)

使用UIMap - 获取ListBox的控件

ItemToSelect - 是字符串

中项目的名称
WinList ListControl = new WinList(Control);
string[] CompleteList = ListControl.GetContent();
        CompleteList = CompleteList.Where(x => x != null).ToArray();
        string Value = CompleteList.First(x => x.Contains(ItemToSelect));
        Mouse.Click((WinListItem)ListControl.Items.FirstOrDefault(x => x.Name.Contains(Value)));