Whiteを使用してWPFアプリケーションのUIを駆動しています。UI Automation(および/またはWhite)を使用して外部アプリケーションからコントロールのDataContextを取得する方法
しかし、私はいくつかの条件を確認するために、テスト中のアプリケーションの内部状態を突き止める必要がある点です。
具体的には、List<MyBusinessObject>
にデータバインドされたDataGrid(WPFToolkit)があります。したがって、各行には、MyBusinessObject
のDataContext
があります。グリッドには、オートメーションIDを使用してグリッドを見つけることができます。文字列"MyCompany.Namespace.MyBusinessObject"
を返し
var row = Grid.Rows[0]
row.AutomationElement.Current.Name
をので、私はほとんどそこだが、私は実際に実際のビジネス・オブジェクト自体を取得することはできません。
私は、これを行うことができます。
私はWPF UIAutomation AutomationPeers(AutomationPeer
から実際のビジネスオブジェクトであるOwner
プロパティを取得できます)を使用していますが、これらをすべて使用するにはインプロセスである必要があるようですWPFコントロールを提供するコンストラクタが必要です。
外部プロセスからAutomationPeerを構築する方法はありますか?それ以外の場合は、WPFコントロールの実際のDataContext
にドリルダウンしますか?