2012-07-10 71 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”并检查模式的相关信息。