4

サードパーティの WPF アプリケーションを自動化する必要があります。TestStack/White を使用しています。このアプリケーションには、画像で表示されるメニュー バーがあります。いくつかのアクションメニューが変更された後。新しいイメージを提示します。新しい画像をクリックしたいとき:

Window mainWindow = application.GetWindow("Main window", InitializeOption.NoCache);
Image newTask = mainWindow.Get<Image>(SearchCriteria.ByControlType(ControlType.Image).AndIndex(2));
newTask.Click();

例外が発生します:

TestStack.White.AutomationException: イメージに対してアクションを実行できません。AutomationId:、Name:、ControlType:image、FrameworkId:WPF、要素がオフスクリーンです。

調査要素には Microsoft Inspect を使用しています。テストを開始すると、Inspect は画像がオフスクリーンであることを示します。しかし、これらのアクションを手動で行うと、完全に機能し、Inspect でこの画像がオフスクリーンになりません。

これらの要素を更新したり、ウィンドウのキャッシュをクリアするにはどうすればよいですか?

4

3 に答える 3

0

フォーカスに問題がある可能性があります。画像を取得する前にこれを使用してみてください。

mainWindow.Focus(DisplayState.Maximized);
于 2016-10-12T20:39:16.923 に答える
0

Window オブジェクトには ReInitialize メソッドと ReloadIfCached メソッドがあります。それらを試して、何かが変わるかどうかを確認してください。

その特定の状況で AndIndex(2) が正しい要素であると確信していますか?

GetMultiple を使用してコレクションを反復処理し、実際に持っている画像とオフスクリーンでない画像を確認してください。

White を使用した WPF 自動化は非常に困難です。Telerik Testing Framework を試すと、White がフレームワークをサポートしている可能性があります。その方がはるかに簡単です。

于 2015-03-24T15:18:12.950 に答える