0

私のアプリケーション フレームワーク: C#.Net

.

ターゲット アプリケーション フレームワーク: Qt

.

私の自動化ツール:

  • TestStack/ホワイト
  • System.Windows.Automation 名前空間の便利なクラス

私は Qt アプリケーションを持っていて、次のコードでそのパネル (ダイヤラ パネル) の 1 つを取得しましたが、その要素を取得 (検索) できません!

…………ここに画像の説明を入力

.


私のコードの主要部分:

var dialerWindow = mainWindow.Get<TestStack.White.UIItems.Panel>("DialerPageWindow");

TreeWalker walker = TreeWalker.RawViewWalker;

AutomationElement current = walker.GetFirstChild(dialerWindow.AutomationElement);

//Now current is NULL :(

.


VS でdialerWindow変数 (DialerPageWindow)を見ました。それはスナップショットです: ここに画像の説明を入力

.


このタイトルの質問に対するこの回答を読みました: Windows UI オートメーションがすべての子要素を表示していませんか?

しかし

  • このボタンにクリック イベントを送信する方法が必要です。
  • ツール、ライブラリ、サード パーティのライブラリ、Windows メッセージなどを C# で提案して、この問題を解決してください。
4

2 に答える 2

1

スクリーンショットから、ダイヤラ ウィンドウの要素が UIAutomation に公開されていないように見えます。inspectまたはwinspectorまたはその他のスパイツールを使用して、要素が検出可能かどうかを確認しましたか?

検出できない場合は、2 つのオプションがあります。

  1. ソースにアクセスし、要素を公開するプロバイダーを実装します (これを参照してください)。おそらくIRawElementProviderを探しています。
  2. 座標をクリックする必要があります (申し訳ありません)。

コードにアクセスできる場合は、実装方法についてこのGitHub リポジトリを参照してください。

于 2015-03-04T20:26:22.647 に答える
0

pyhtonist として、QT アプリケーションに役立つ可能性がある pytest フレームワーク用のpytest-qtプラグインを提案できます。

于 2014-11-01T09:06:50.747 に答える