我正在使用White来驱动 WPF 应用程序的 UI,到目前为止它运行良好。
但是,我现在需要深入到被测应用程序的内部状态以检查某些条件。
具体来说,我有一个 DataGrid(来自WPFToolkit),它是数据绑定到List<MyBusinessObject>
. 因此每一行都有DataContext
一个MyBusinessObject
我可以通过使用它的自动化 ID 找到使用白色的网格。
然后我可以这样做:
var row = Grid.Rows[0]
row.AutomationElement.Current.Name
它返回 string "MyCompany.Namespace.MyBusinessObject"
,所以我快到了,但我实际上无法获得实际的业务对象本身。
我已经查看了 WPF UIAutomation AutomationPeers (从 中AutomationPeer
,您可以获得Owner
属性,它是实际的业务对象),但似乎您需要在进程中才能使用这些,因为它们都有构造函数,需要您提供 WPF 控件。
有什么方法可以从外部进程构造一个 AutomationPeer,或者深入了解DataContext
WPF 控件的实际情况?