2015-02-24 35 views
2

我正在用VS 2012和編碼UI測試創建自動測試。當我使用我們的WPF應用程序記錄測試並在ListBoxItem上創建MouseClick(我們使用ListBoxes作爲菜單)時,我在UI控制圖中得到了錯誤的UI控件層次結構。什麼會導致Coded UI Test中錯誤的UI控件層次結構?

我希望下面的樹:

WPF-Window/TabControl/TabPage/RadExpander/MainMenuListBox/SelectedMenuListItem 

但我得到以下 - 正如我所說的 - 錯了樹:下WPF-Window

WPF-Window/RadExpander/MainMenuListBox/SelectedMenuListItem 

當我播放錄音,對照無法找到,因爲樹不完整。

當我在ListBox控件上記錄DoubleClick時,我得到正確的樹。

所有控件都具有AutomationIds。

在UI控制樹中導致該錯誤的原因是什麼?

在此先感謝!

P.S.:我現在已經制作了一個較小的WPF版本。 當我在一個ListBoxItems上單擊一個MouseClick時,該樹就沒事了。 但是當我在其中一個項目上進行DoubleClick時,該樹是錯誤的。

+0

我相信Coded UI故意排除樹中的某些項目,但我找不到Microsoft頁面來描述如何完成。因此我認爲你的問題與樹中缺失的項目無關。編碼UI內容索引在處理WPF時有幾個項目,請參閱http://blogs.msdn.com/b/mathew_aniyan/archive/2010/02/11/content-index-for-coded-ui-test.aspx – AdrianHHH 2015-02-24 13:25:04

+0

當我重玩我的測試,我收到一條錯誤消息「在搜索控件時,TabControl發生錯誤,因爲可能存在虛擬子元素。」 – 2015-02-24 14:22:41

+0

編碼UI內容索引有多個用於調試測試的鏈接,包括兩個包含單詞「virtualised」的鏈接。 – AdrianHHH 2015-02-24 14:35:16

回答

0

我有一個類似的問題,其中構建程序在TabControl內部找不到任何控件,除非我手動搜索它。但是,即使手動添加控件,也無法點擊控件。

我發現了修補程序here,但是我們在此之後很快就使用了構建器。所以修復工作,但我們沒有徹底測試。

的特定部分是這樣的:

我回顧了示例應用程序,並發現這似乎使用模板時,是在WPF TabControl的一個bug,你需要指定正確的「姓名」,在ContentPresenter在你MainStyles.xaml TabControl的樣式定義:

<ContentPresenter Name="PART_SelectedContentHost" ContentSource="SelectedContent" />

更多關於這here信息。

相關問題