如何使用DataTemplate刷新WPF AutomationElement-Windows UI Automation

时间:2018-11-25 21:21:20

标签: c# wpf ui-automation

我正在尝试使用Windows UI Automation自动执行WPF应用程序的测试。

该应用程序有一个ContentControl,其数据模板会根据用户交互而更改。

在初始加载时,我可以获取并单击内容控件内部的按钮。这将切换数据模板(子控件已删除,并替换为其他子控件)。

但是,当我在自动化元素中寻找新控件时,找不到它们。

我正在使用包装器FlaUI,但我也尝试过使用White,它们的结果相同。

我没有使用缓存,但是好像窗口以某种方式被缓存了。有没有一种方法可以重新加载元素或整个窗口,以便我可以检索新控件。

1 个答案:

答案 0 :(得分:0)

FlaUI's FAQ上找到了解决方案。

  

使用DevExpress控件时,某些事情(例如标签内容)不正确   已更新默认情况下,DevExpress控件不会提高自动化   事件,因为这些事件可能会降低应用程序性能。至   确保事件正确引发,设置   将ClearAutomationEventsHelper.IsEnabled静态属性设置为false   应用程序启动(需要在   FlaUI自动化):

     

ClearAutomationEventsHelper.IsEnabled = false;