我无法在 codedui 中 select UWP ListView 项目

I can't select UWP ListView items in codedui

我有一个 UWP 应用程序,我正在为 UWP 使用 CodedUI

它包含一个创建为 ListView 的报表,我需要验证此列表中的一些值。但是当我尝试使用十字线工具将其拖到行或列表上时,应用程序一直挂起,当我成功捕获该行时,我 运行 测试用例失败,因为 Codedui 不能找到控件。

在所附的照片中,我可以捕获“主页”选项卡按钮和其他选项卡以及下拉菜单和它下面的按钮,但是如果我将十字线工具拖到列表中,它会一直挂起应用程序,直到我关闭它

visualstudio 为列表项行捕获了什么

在 运行 getchildren 之后,主要的 window 然后是 listitem 控件的 getparents 层次结构,这就是它们的样子

我可能有其他方法可以解决您的问题。下面的代码将获取一个父控件并对其进行筛选,直到以递归方式添加所有子控件,尊重控件层次结构。这样,您将在运行时拥有所有可用的列表视图项。如果您在列表视图项集合更改时使 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;
        }
    }
}

子项 属性 是必填项,其他属性是可选的。