我在编码的 ui 测试中使用 uimap 来获取有关应用程序中控制器的信息,为列表框返回的值是“client”-controlType、technicalname MSAA 和 Name = session。我的目标是能够获取列表框的所有值,然后使用代码选择一个值。有没有办法做到这一点 ?非常感谢。
问问题
2246 次
2 回答
4
给定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 ...
}
}
}
WheresomeTestOfTheControl()
测试控件是否是您感兴趣的控件。
于 2013-08-06T12:32:11.257 回答
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)));
于 2017-07-10T05:58:50.670 回答