自動化を行うためにコード化されたUIを使用しています。テストケース用に開いているウィンドウの数を数える必要がありますが、その方法がわかりません。findを使用して、applicationundertestを取得し、子供たちを歩いてみましたが、ウィンドウはそれに属していないようです。
誰もがこれを経験しましたか?
自動化を行うためにコード化されたUIを使用しています。テストケース用に開いているウィンドウの数を数える必要がありますが、その方法がわかりません。findを使用して、applicationundertestを取得し、子供たちを歩いてみましたが、ウィンドウはそれに属していないようです。
誰もがこれを経験しましたか?
ほとんどのUIフレームワークには、開いているウィンドウのコレクションがあります。
Winforms:
int count = Application.OpenForms.Count;
このアプリケーションが所有する現在開いているすべてのフォームを含むFormCollection。
WPF:
int count = Application.Current.Windows.Count;
ウィンドウがユーザーインターフェイス(UI)スレッドでインスタンス化されるとすぐに、ウィンドウ参照がWindowsに自動的に追加されます。ワーカースレッドによって作成されたウィンドウは追加されません。ウィンドウ参照は、Closingイベントが処理された後、Closedイベントが発生する前に自動的に削除されます。
メインインスタンスで静的intを作成し、それをすべてのフォームコンストラクターでカウントアップし、FormClosingイベントでカウントダウンするだけです。
多分この短いコードは役に立つでしょう
this.Load += delegate { mainInstance.myCount++; };
this.FormClosing += delegate { mainInstance.myCount--; };