UID验证无法识别System.Windows.Forms.ListView复选框

时间:2014-08-27 11:04:27

标签: ui-automation uia

我是UI自动化和UI验证工具的新手。

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

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

到目前为止,确定了每一行中的每一行和所有值。 UI验证无法识别复选框。


命名空间WindowsFormsApplication1 {     公共部分类Form1:表格     {         公共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" }));
    }

}

输出:UIA验证可识别值“1”和“通过”。但是无法识别复选框。


还有其他人遇到类似行为吗?如果有的话,有什么解决办法吗?

非常感谢所有帮助。

此致 Hari Hara

2 个答案:

答案 0 :(得分:2)

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

enter image description here

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

    /// <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();
    }

答案 1 :(得分:1)

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