問題タブ [microsoft-ui-automation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gdi+ - 別のアプリケーションプロセスで任意のウィンドウのビットマップを取得できますか?
定義された時間間隔で特定のウィンドウのグラフィックスコンテンツをキャプチャしたいサードパーティのWin32アプリケーションを自動化しようとしています。私はこれの初期段階にあり、現在、C#を介してMicrosoft UI Automation APIを使用して、クライアントアプリと外部アプリ間のほとんどのやり取りを実行しようとしています。これで、外部アプリにやりたいことを実行させることができますが、サードパーティの所有者が作成したコントロールのように見える特定のウィンドウからグラフィックをキャプチャしたいと思います。これどうやってするの?キャプチャしたいウィンドウは、この画像の赤い長方形でマークされたウィンドウです。
私はそのような動作をする実装を持っていますが、それは外部アプリのUIが一番上にあることに依存しており、それは私にとって保証されていないので、もっと一般的なものを見つけたいと思います。
上記は自動アプリが上にある場合は十分に機能しますが、画面を長方形に盲目的にコピーするだけなので、私のコードはマシンで実行されているものに翻弄され、アプリのウィンドウを覆う可能性があります。
WM_PRINT
メッセージをウィンドウに送信するためのいくつかの提案を読みました。数か月前のこの質問/回答は有望に思えましたが、このコードを使用すると、コントロールの実際の内容がまったく含まれていない白い長方形が表示されます。
それで、最初に、ウィンドウのコンテンツのビットマップを確実に保存することさえ可能ですか?もしそうなら、最善の方法は何ですか、そして私WM_PRINT
のSendMessage
試みの何が悪いのですか?
wpf - Microsoft UI オートメーション ライブラリとコード化された UI テスト
私はそのTest Automation
ようなことに非常に慣れていません。最近、多くの s を欠いている CAD のような WPF アプリケーションの UI テストを自動化するアプリケーション (または、スクリプトかもしれません) を作成する必要があるプロジェクトに割り当てられましたAutomationId
。
MSDN やその他の情報源で少し検索した後、VS2010 に含まれるMicrosoft UI Automation Library
新機能を使用する必要があるかどうかについて少し混乱しています。Coded UI Test
これら 2 つのうちのどちらがどのシナリオに適用されるか、一方が他方に対してどのような利点を持ち、どちらが私の目的に適しているかについて、明確なイメージが得られません。
この問題に関する経験/知識がある場合は、光を当ててください。前もって感謝します。
microsoft-ui-automation - UI オートメーション - 複数の識別子に基づくオブジェクトの選択
私はこれが初めてです。UI オートメーションを使用してアプリケーションを自動化しています。複数の識別子に基づいて要素を識別する方法はありますか。現在、以下の構文は、1 つの識別子に基づいてのみ識別できます。
NameProperty と ControlTypeProperty の両方で要素を識別したいと思います。
これは可能ですか?
c# - UI オートメーション クライアントで捕捉された例外が、自動化された UI に表示されるのはなぜですか?
背景をちょっと…
UI のコントロールとランダムにやり取りする UI 自動化アプリを開発しています。自動化されるアプリと UI はどちらも WPF アプリケーションです。UI オートメーション アクセシビリティ フレームワークを使用しています。時折、キャッチして処理するアプリで ElementNotAvailableException が発生します。ANTS 7 を使用して UI をプロファイリングしているときに、これらの例外が Gen 2 ガベージ ヒープに表示されていることに気付きました。例外の新しいインスタンスは、アプリで例外をキャッチした回数と一致します。
WinDBG を使用した GCRoot と UIAutomation ページを調べましたが、自動化されているアプリでキャッチされた例外が表示される理由について明確な説明が見つかりませんでした。UI が自動化されているときにオブジェクトが解放されず、自動化アプリを閉じてもオブジェクトが残ります。
何か案は?
c# - AutomationElementsでキャッシングを使用してもスピードアップは得られません-意図された使用法ですか、それとも間違った使用法ですか?
一部のUIオートメーション操作の速度を上げようとしています。私は(あまりよくない)文書化されたキャッシュの可能性に出くわしました。
私が理解したことから、操作全体(大きなGUIツリーがある場合)は非常に遅いです。なぜなら、関数呼び出しごとにプロセスを変更する必要があるからです(カーネルモードに移行するようなものだと思います。速度的に?!)。だから..キャッシングがやってくる。
要素とその子をキャッシュするように関数に指示するだけで、非常に高速に処理できます。(私が理解していることから、コンテキスト変更は1つだけであり、必要なすべてのデータを一度にアセンブルします。)
良い考えですが、キャッシュされていないバリエーションと同じくらい遅いです。簡単なテストコードをいくつか書きましたが、改善は見られませんでした。
設定は次のとおりです。要素を取得し、そのすべての(多くの)兄弟をチェックしたい。キャッシュなしとキャッシュありの両方の実装が示されています。
出力(デバッグモード):キャッシュなしの実行時間:1130ミリ秒。実行時間parentcache:1271ミリ秒。
なぜこれが機能しないのですか?改善方法?
アイデアをありがとう!!!
ui-automation - コード化された UI テストと Microsoft UI オートメーション ライブラリ
複雑な WPF アプリケーションの UI テストを行いたいと考えています。UI オートメーション用の 2 つのライブラリを見つけました。
- コード化された UI テスト
- Microsoft UI オートメーション ライブラリ。
上記の2つのオプションで混乱しています。どのライブラリをどこで使用すればよいか教えてください。両方の長所と短所を知りたいですか?
- ありがとう
microsoft-ui-automation - MicrosoftUIAutomationが予期されたComboBoxアイテムを返さない
次のUIAUtomationコードを使用してコンボボックスのリストアイテムを取得しようとしていますが、ゼロのアイテムが返されます。このcomobboxには確かにアイテムがありますが、何が間違っているのでしょうか。
GetMarketAreasComboBoxは次のように定義されています。
c# - WPFUIオートメーション-TabControlの領域がクリックされるまでコントロールツリーが汚染されない
Microsoft UIオートメーションライブラリを使用してWPFアプリケーションのUIオートメーションを実行していますが、正常に動作します。
ただし、私のアプリにはTabControlに4つの画面があります。コードを使用してタブ項目をクリックしても、その子コントロールツリーは表示されません。私が見ることができる唯一のコントロールは「親指」コントロールです。UISpyでコントロールツリーを表示したときにも同じことが起こります。
ただし、ウィンドウをクリックすると、すべてのコントロールが表示されます。回避策として、私はコードを介してマウスクリックをシミュレートしており、それは機能します。私はそれを行うためのより良い方法があるかどうか知りたいと思いました。
javascript - JavaScript イベントの自動化イベントの発生
今後の使用のために記録できる自動化イベントを発生させたいと考えています。ボタンのクリックなど、ユーザーが JavaScript ウィジェットを操作すると、イベントが発生する必要があります。
これを探してみたところ、似たようなものが見つかりました - http://msdn.microsoft.com/en-us/library/ms720907(v=vs.85).aspx
しかし、UI Automation API でこれを使用する方法がわかりません。誰かがリソースに関連するものを教えてくれますか?
c# - リストボックス項目の選択時にイベントが発生しない - .Net UIAutomation フレームワーク
今日は .NET UI オートメーション フレームワークについて学習しています。ということで、これまでやってきたこと(いろいろな記事を参考に)
Listbox、PictureBox、TextBox、および Button コントロールを含む WinForm を用意します。写真を参照してください:
すべてのUIオートメーションテストスクリプトまたはwinform UIテストを自動化するコードを持つconsoleappがあります。
作業: リストボックスからアイテムを選択すると、画像ボックスは画像をロードして表示します (ロードするコードはリストボックスの SelectedIndexChanged イベントにあります)。
以下は、フォームの listBox コントロールのコードです。
これで、私の UIAutomation テスト スクリプト コードは次のようになります: (必要な部分のみが示されています)
コードを実行した後、Select() メソッドは機能し、次のように Form リストボックス項目が選択されます。
画像でわかるように、リストボックス項目は選択されていますが、イベント SelectedIndexChange は発生しておらず、ピクチャボックスは変更を反映していません。
したがって、ポインタは非常に役立ちます:)
ありがとう