如何在自定义列表视图控件上实现辅助功能

时间:2014-02-25 19:04:39

标签: .net custom-controls accessibility vb.net-2010 coded-ui-tests

我们使用自定义listview控件和listview项目,这些项目不实现可访问性,因此编码的ui测试将无法真正使用它们。我正在尝试实现可访问性,我只是不确定我在做什么。

我已经完成了这两个(我还没有找到任何其他例子): http://msdn.microsoft.com/en-us/library/system.windows.forms.accessibleobject(v=vs.110).aspx http://blogs.msdn.com/b/mathew_aniyan/archive/2011/05/17/enabling-ui-testing-for-third-party-winforms-custom-controls-1.aspx

我已经达到了可以使用Coded UI测试突出显示,点击和断言listview项目的程度,但我仍然无法选择正确的项目。

我认为这是因为listviewitem的AccessibleObject上的Name属性:

Public Overrides Property Name As String
  Get
    Return p_itmOwner.SubItems(0).Text.ToString
  End Get
  Set(value As String)
    p_itmOwner.SubItems(0).Text.SetValue = value
  End Set
End Property

我注意到如果列表视图中有多个项目,第一列是相同的,它将只选择它找到的第一个项目。使ListItem可访问的正确方法是什么?我可能会在Name属性中附加所有列的文本,但这对我来说似乎不是正确的解决方案。

1 个答案:

答案 0 :(得分:0)

编码后的用户界面会在找到与搜索条件匹配的第一个控件后停止搜索。

您可以尝试查找所有匹配的列表项,然后选择正确的列表项。对不起,这是在C#。

            UITestControlCollection matchingListItems = listItem.FindMatchingControls();
        ((WinListItem)matchingListItems[matchingItemIndex]).Select();