2

我对 UI 自动化和 UI 验证工具很陌生。

在我们的应用程序中,我们使用 System.Windows.Forms.ListView 并将 CheckBoxes 属性设置为 true。

CheckBoxes 属性允许您在列表中的每个项目旁边显示一个复选框。这使您的应用程序能够显示项目列表(如果 View 属性设置为 View.Details,则显示子项目)

到目前为止,单个行和每行中的所有值都已被识别。UI 验证仅识别复选框。


命名空间 WindowsFormsApplication1 { public 部分类 Form1 : Form { public Form1() { InitializeComponent()

        listView1.CheckBoxes = true;
        listView1.View = View.Details;
        listView1.Columns.Add("Automation");
        listView1.Columns.Add("result");
        listView1.Items.Add(new ListViewItem(new string[] { "1", "Pass" }));
    }

}

输出:“1”和“pass”这两个值都被 UIA 验证识别。但是无法识别该复选框。


有没有其他人经历过类似的行为?如果是这样,有什么解决办法吗?

非常感谢所有的帮助。

问候 Hari Hara

4

2 回答 2

2

从我可以看到整个列表项支持切换模式。

在此处输入图像描述

因此,您应该能够使用行控件本身的切换模式。

    /// <summary>
    /// Toggles anything that supports the toggle pattern
    /// </summary>
    /// <param name="aeElement">Automation element to toggle</param>
    public void Toggle(AutomationElement aeElement)
    {
            TogglePattern tpToggle = (TogglePattern)aeElement.GetCurrentPattern(TogglePattern.Pattern);
            tpToggle.Toggle();
    }
于 2014-10-14T23:50:18.863 回答
1

您是否使用“悬停”模式?尝试检查 UIA 验证程序窗口左窗格中复选框项目附近的窗格结构。

于 2014-10-11T08:46:11.747 回答