2

UI Automation Framework を使用しており、TreeWalker を使用して UI を解析しようとしています。(ここで提案されている解決策も試しましたが、あまり役に立ちませんでした。)

1 つの子ペインと複数の子ボタンを含む単一のペインがあります。皆同じレベルだから兄弟って呼んでもいいんじゃないかな。TreeWalker を使用して要素を解析すると、ペインのみが「表示」され、ボタンは表示されず、実際に表示されます。

UIA Verify を使用してこれらのボタンの 1 つを選択すると、階層を構築して描画することができます。次に、コンテキスト メニューから [兄弟に移動] を選択すると、子ペインと他の子ボタンの間を簡単に移動できます。

Control や Raw など、TreeWalker のさまざまなバージョンをすべて試しましたが、結果は同じで、子ペインしか表示されません。

UIA Verify がどのように階層を構築し、すべてのコンポーネントを表示する (そしてその間をナビゲートする) ことができるかについて、誰かが大まかな概要を教えてくれませんか? コードでそれを複製できないのはなぜですか?

4

2 に答える 2

2

私の推測では、組み込みのマネージド UIA ラッパーを使用していたと思われます。そうですか?マネージド バージョンは、既知の制限/問題がある UIA v2 を使用します。UIA Verify は、COM を介して直接 UIA v3 を使用します。

そうであるかどうかを確認するには、UIA Verify の代わりにUISpyを使用してみてください。古い管理されたラッパーも使用するため、コードと同じ問題がある場合は、一種の確認になります。

組み込みのラッパーの代わりに、同じ API を提供するUIAComWrapperを使用することもできますが、内部では COM/UIA v3 を使用します。

于 2014-05-03T05:50:11.057 に答える
0

何が問題なのかわかりません。アプリケーションを持っていないのでテストできますが、AutomationElement.FindAll 関数を使用しようとしましたか? 要素のすべての子を取得したい場合は、次のようなコードを使用できます。

collection = parent.FindAll(TreeScope.Children, Condition.TrueCondition);

これにより、コントロールの子が返されます。このツールを使用してアプリケーションをテストし、ボタンが検出されるかどうかを確認することもできます。このツールは、.NET Framework 4.0 で作成されています。運がいい!

于 2015-01-10T08:22:07.557 に答える