0

我們使用自定義的不實現可訪問性的自定義列表視圖控件和列表視圖項目,因此編碼的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

我已經得到了地方的ListView項目可以強調一點,點擊並使用Coded UI測試斷言,但我仍然在選擇正確的項目時遇到問題。

我想這是因爲我的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 

我注意到,如果有在第一列是一樣的列表視圖多個項目,它只會選擇1號之一,認定。什麼是使ListItem可訪問的正確方法?我大概可以在Name屬性中追加所有列的文本,但這對我來說看起來並不是正確的解決方案。

回答

0

編碼UI在找到符合搜索條件的第一個控件後停止搜索。

您可以嘗試查找所有匹配的列表項,然後選擇正確的項。對不起,它在C#中。

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

我讀到它將繼續搜索日益更具體的標準,直到它找到1個控件。如果它經歷了所有的標準並仍然超過1,那麼它只會返回第一個。一些我如何需要添加更多標準的搜索,但我不知道要添加什麼。 - 而C#很酷。這是我的首選語言,但在工作中我必須使用VB。 – Nick

相關問題