Wpf UIAutomation测试以检测按钮是否设置为默认值

Wpf UIAutomation测试以检测按钮是否设置为默认值,wpf,ui-automation,Wpf,Ui Automation,我一直在谷歌上搜索这个问题的答案,但到目前为止还没有找到任何答案 我正在为WPF应用程序编写许多UIAutomation测试,但似乎无法确定按钮是否设置为默认值 例如,假设表单上有许多文本框。当“地址”文本框具有焦点时,有一个“查找”按钮被设置为默认按钮(即按ENTER键时将调用您) 我遇到的问题是,当地址字段有焦点时,如何确定IsDefault是否为true;当地址没有焦点时,如何确定IsDefault是否为false 从我所看到的,似乎没有一种方法来评估这个属性 所以,任何有助于解决这个问题

我一直在谷歌上搜索这个问题的答案,但到目前为止还没有找到任何答案

我正在为WPF应用程序编写许多UIAutomation测试,但似乎无法确定按钮是否设置为默认值

例如,假设表单上有许多文本框。当“地址”文本框具有焦点时,有一个“查找”按钮被设置为默认按钮(即按ENTER键时将调用您)

我遇到的问题是,当地址字段有焦点时,如何确定IsDefault是否为true;当地址没有焦点时,如何确定IsDefault是否为false

从我所看到的,似乎没有一种方法来评估这个属性

所以,任何有助于解决这个问题的方法都会很有帮助

谢谢你,保罗
  • 如果文本框是标准WPF控件“System.Windows.Controls.TextBox”,我认为您可以监视“TextPattern.TextSelectionChangedEvent” MSDN中的详细信息(TextPattern.TextSelectionChangedEvent)->

    您可以通过UISpy:i检查和监视此事件。在树中选择目标编辑控件。二,。选择菜单“事件”->“配置”(选择范围和事件)iii.选择菜单“事件”->“开始”

    当EditBox上发生一些事件时,UISpy将跟踪事件到输出面板

    • 如果这些编辑框不是标准WPF控件“System.Windows.Controls.TextBox”。 您可以尝试检查UISpy中的“ControlPatterns”,并检查模式的相关信息
    找到了解决方法。您可以检查AccessKey,查看是否已更改为\r这样的书仍然是一个问题。AccessKey有时会更新,但不会在单个测试期间更新。使用UISpy,只有在选择另一个节点,然后再次选择按钮节点后,才会刷新AccessKey。即使在节点上单击“刷新”,也不会对其进行更新。此外,AutomationElement.Current.NativeWindowHandle始终返回0,这使得使用Win32 API获取样式非常困难。因此,任何帮助都将不胜感激。