我在编码的ui测试中使用uimap来获取有关应用程序中控制器的信息,为列表框返回的值是“client” - controlType,technologyname MSAA和Name = session。 我的目标是能够获取列表框的所有值,然后使用代码选择一个值。 有没有办法做到这一点 ? 非常感谢。
答案 0 :(得分:3)
给定列表框的UITestControl
对象,您应该能够使用GetChildren
方法获取所有列表条目。它返回一个包含父控件的所有子控件的集合。根据列表框的精确结构及其内容,您可能需要重复调用该方法以获取孙子或更深层次的控件。
<强>更新强>
在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)));