は最近、私はこの記事から知るようになった - WPFでAutomationPeerクラスを実装していないWPFカスタムコントロールの内部要素にアクセスする方法は?
http://blogs.msdn.com/b/patrickdanino/archive/2009/11/11/custom-controls-and-ui-automation.aspx
- つまりコントロールはUIAのアイテムそのものを露出させるための責任がある、とカスタムコントロールの任意の新しく追加された機能は、UIAには使用できません対応するAutomationPeerクラスの実装を通じて公開されるまで私の仕事では、多数のツールバーを使用するWPFアプリケーションのUIテストの自動化に割り当てられました。問題は、Microsoft UI Automation Libraryを介してAutomationElementsと同様にToolBars(カスタムコントロールとして開発されているようです)にアクセスできますが、その中のButtonsにはアクセスできません。Count of Children/Descendant Collectionは常に0を返します。 、テストは常に失敗し、次のエラーメッセージを示しています。例外をスロー
試験方法 CAM2QDummyTest.CodedUITest2.CodedUITestMethod1を:
Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnBlockedControlException: 別のコントロールでありますコントロールをブロックします。 ブロックされた コントロールを表示させ、アクションを再試行してください。 追加詳細:
TechnologyName: 'MSAA'
名:[標準]
ControlType: 'ツールバー'
---> System.Runtime.InteropServices.COMException: 例外HRESULTから:0xF004F003
明らかに、彼らは対応するAutomationPee rクラス。さて、私はソースコードではなくアプリケーションだけを持っています。だから私は上記の記事で説明した方法で問題を解決することはできません。誰でも手掛かりを持って助けてくれますか?どのようにツールバーの内側のボタンにアクセスできますか?どんな提案も感謝しています。
THANKS a lot Lunivore。間違いなくGetメソッドを最初に試してみるつもりです。しかし、私が座標のアプローチに従わなければならない場合、ボタンのマウスクリックだけをシミュレートする以外に、テキストボックスやコンボボックスと通信できる方法はありますか?私のツールバーの中には、それらも含まれています:-( – atiyar
あなたはUISpyを試してみることができますが、それは何かを考え出すことができますが、あなたのツリーが空でないと思われます。実際にオートメーションピアを正しく実装してください - それはとても重要です! – Lunivore
まあ、私は死んで終わりを見ます。UISpy、Spy ++、コード化されたUIテストビルダー、Inspect - すべてがToolBarsより深くなっています。とにかく、あなたの時間のおかげでルーニ。 – atiyar