我对 UI 自动化和 UI 验证工具还很陌生。
在我们的应用程序中,我们使用 System.Windows.Forms.ListView,并将 CheckBoxes 属性设置为 true。
CheckBoxes 属性允许您在列表中的每个项目旁边显示一个复选框。这使您的应用程序能够显示项目列表(如果 View 属性设置为 View.Details,则显示子项目)
到目前为止,单个行和每行中的所有值均已识别。只有复选框未被 UI 验证识别。
命名空间 WindowsFormsApplication1 { 公共(public)部分类 Form1 :表格 { 公共(public)表格1() { 初始化组件()
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”和“pass”。但是该复选框未被识别。
还有其他人经历过类似的行为吗?如果是这样,有什么解决办法吗?
非常感谢您的帮助。
问候 哈日原
最佳答案
据我所知,整个列表项都支持切换模式。
所以您应该能够使用行控件本身的切换模式。
/// <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();
}
关于ui-automation - UIA 验证无法识别 System.Windows.Forms.ListView 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25525512/