2012-07-10 68 views
0

我一直在搜索這個答案,但目前沒有發現任何東西。UIAutomation測試以檢測按鈕是否設置爲默認

我正在爲WPF應用程序編寫一些UIAutomation測試,但似乎無法確定是否將按鈕設置爲默認值。

例如,假設您在表單上有多個文本框。當地址文本框具有焦點時,有一個設置爲默認按鈕的查找按鈕(即,當您按ENTER時將調用該按鈕)。

我遇到的麻煩是如何確定當地址字段有焦點時IsDefault是否爲真,當地址沒有焦點時是否爲假。

似乎沒有辦法從我所能看到的方式評估此屬性。

所以,任何幫助解決這個問題真的會有所幫助。

謝謝,保羅

+0

找到解決辦法。您可以檢查AccessKey以查看是否已更改爲\ r – Paul 2012-07-10 02:00:20

+0

**看起來這仍然是一個問題**。 AccessKey有時會更新,但不會在單個測試中更新。使用UISpy,AccessKey只在選擇另一個節點後刷新,然後再次選擇按鈕節點。即使點擊節點上的刷新也不會更新它。此外,AutomationElement.Current.NativeWindowHandle始終返回0,這使得使用Win32 API獲取樣式變得很困難。所以,任何幫助仍將不勝感激。 – Paul 2012-07-10 07:17:50

回答

0
  • 我想你可以監視「TextPattern.TextSelectionChangedEvent」如果文本框是一個標準的WPF控件「System.Windows.Controls.TextBox」。

在MSDN(TextPattern.TextSelectionChangedEvent)的細節 - >http://msdn.microsoft.com/en-us/library/system.windows.automation.textpattern.textselectionchangedevent.aspx

您可以檢查和監控通過UISpy此事件:我。在樹中選擇目標編輯控件。 II。選擇菜單「事件」 - >「配置」(選擇範圍和事件)iii。選擇菜單「事件」 - >「開始」

當編輯框中發生一些事件時,UISpy將跟蹤事件到輸出面板。

  • 如果這些編輯框不是標準的WPF控件「System.Windows.Controls.TextBox」。 您可以嘗試檢查UISpy中的「ControlPatterns」並檢查模式的相關信息。