我有一个UWP应用程序,并且正在使用CodedUI进行UWP
它包含一个创建为ListView的报告,我需要验证此列表中的某些值。但是,当我尝试使用十字线工具将其拖到行或列表上时,应用程序一直挂起,并且当我成功捕获行时,我运行测试用例失败,因为Codedui找不到控件。
在随附的照片中,我只能捕获“主页”选项卡按钮和其他选项卡以及下拉菜单和其下方的按钮,但是如果在列表上拖动十字线工具,它将一直挂起应用程序,直到关闭它为止。
答案 0 :(得分:0)
我可能有替代您的问题的方法。下面的代码将采用父控件并将其筛选通过,直到以递归的方式添加所有子控件,并遵守控件层次结构。这样,您将在运行时拥有所有可用的listview项。如果只要列表视图项集合发生更改,只要使KeyValuePair保持最新状态,这里找不到控件异常就不会成为问题。
使用此递归方法:
public ParentControl GetChildControls(UITestControl parentControl)
{
ParentControl parent = new ParentControl();
if (parentControl != null)
{
List<ParentControl> children = new List<ParentControl>();
foreach (UITestControl childControl in parentControl.GetChildren())
{
children.Add(GetChildControls(childControl));
}
parent.Children = new KeyValuePair<UITestControl, List<ParentControl>>(parentControl, children);
}
return parent;
}
ParentControl对象:
public class ParentControl
{
public KeyValuePair<UITestControl, List<ParentControl>> Children { get; set; }
public string Value
{
get
{
return Children.Key.Name;
}
}
}
Children属性是必需的,其他属性是可选的。