4

私は 03 年以上 AutoIT と Windows 自動化に取り組んできましたが、主に WinForms に取り組んできました。AutoIT は、WPF または Java SWT UI では機能しません。White Framework を少し使用しました。ウィンドウタイトル、ウィンドウテキスト、UI コントロールテキスト、およびアクション (右クリックまたは左クリック) のリストを含む xml を渡すテスト用およびサードパーティ UI オートメーション用の汎用アプリケーションを作成したい - AutoIT コントロールとまったく同じ機能をクリックすると、アクションが実行されます。

私の要件は、すべての Windows デスクトップ アプリケーション (C、C++、.Net Winforms、.Net WPF、Silver-light、Java、Delphi、Qt などで記述されているかどうか) で動作することです。エンド ユーザーは、運用チームまたはテスト チームです (コーディングはできません)。どのようなアプローチを取るべきですか?

  1. Microsoft UI オートメーション フレームワークは、すべての種類の Windows UI オートメーションをサポートしていますか?
  2. White フレームワークは Microsoft UI Automation よりも優れています (私が確認しました - White は社内でも Rhino を使用しています)。
  3. OCR を使用してコントロールを検出する独自のライブラリを作成する必要があります (人間のユーザーと同じように) ? OCRを使用するとどのような欠点がありますか?

よろしく アクシャイ・ミシュラ

4

3 に答える 3

4

UI オートメーション フレームワークは、ネイティブ ウィンドウ コントロールを使用する (またはマップする) すべてを処理します。これは、Java の SWT、ほとんどの C++ のウィジェット ツールキット、および Delphi の VCL フォームの場合であり、独自のコントロールをレンダリングするがインターフェイスを公開する他のツールキットとも連携します。アクセシビリティの目的で(Javaのswingがそのような場合だと思います)。

White は UI Automation Framework を内部で使用しているため、理論的には、Automation Framework が処理できるものはすべて処理できます。

OCR を使用するのは大変な作業であり、おそらく結果はあまり良くないでしょう。したがって、.NET でコーディングしている場合は White を使用し、それ以外の場合は UI オートメーション フレームワークの COM オブジェクトを使用する必要があります。 Automation Framework のような大量のインターフェイス タイプを使用します (少なくとも、他に何も見つかりませんでした)。

于 2013-04-30T12:19:54.710 に答える
1

それらがあなたが使用している専門的なアプリケーションである場合、何らかの形のアクセシビリティ フレームワークを公開する可能性が非常に高くなります。これらは自動化に非常に役立ちます。私は間違いなく調査します。

完全に信頼できるシステムが必要な場合は、フレームワークごとに同様の自動化コードを記述し、使用中の検出メカニズムを用意する必要があります。これは大量のコードですが、そのほとんどは既に存在しています。

あなたが言及したように、OCRは他の選択肢です。これは良い解決策というよりは安っぽいハックのように感じられるので、フォールバック オプションとして覚えておくことをお勧めします。OCR は AutoIt で十分にカバーされており、共通ライブラリのいくつかのラッパーがあります。興味深いのはMODIだと思いますが、テキスト自体だけでなくテキストの座標も取得できるかどうかを確認する必要があります。

または、フォントがデフォルトのシステム フォントになる場合、またはどのフォントになるかがわかっている場合は、必ずしも OCR を使用する必要はなく、代わりにフォントのイメージを検索できます。同じように見えるボタンがたくさんある場合は、検討する価値があるかもしれません。

于 2012-04-23T18:52:20.830 に答える
1

Java GUI は、VS 2016 のコード化された UI テストではサポートされていません

オートメーション FW (ウィンドウ、タイトルバーなど) ではネイティブのウィンドウ要素のみが表示され、ウィンドウの内部要素 (JEdit、JCombobox...) は認識されません。

したがって、ネイティブ要素からの座標を使用した MTM 記録テスト ( SQA.stackexchange の質問を確認してください)

于 2016-06-29T12:35:30.623 に答える