私はUI 自動化に White を使用していますが、Java で作成されたアプリに出会うまでは問題なく動作していました。その場合、ウィンドウが見つかりません。デスクトップからすべての Windows を取得すると、探しているウィンドウの名前が表示されます。
List<White.Core.UIItems.WindowItems.Window> windows = new List<White.Core.UIItems.WindowItems.Window>();
windows = White.Core.Desktop.Instance.Windows();
int a = 0;
for (int i = 0; i < windows.Count; i++)
if (windows[i].Name == "HP Service Manager Client") a = i;
これは機能していますが、実行中のプロセスをアタッチしてそのウィンドウを取得しようとすると、何も表示されず、リストは空になります:
windows=app.GetWindows();
これは、メイン ウィンドウを見つけるコードです。
var processes = Process.GetProcessesByName("ServiceManager");
White.Core.Application app = White.Core.Application.Attach(processes[0]);
White.Core.UIItems.WindowItems.Window main = app.GetWindow(SearchCriteria.ByText("HP Service Manager Client"), InitializeOption.NoCache);
表示されるエラー: 追加情報: 5000 ミリ秒待機した後、プロセス 7396 で SearchCriteria Name=HP Service Manager Client のウィンドウが見つかりませんでした
VisualUIAVerify で Window を確認でき、その名前が正しいことがわかります。動作していないアプリはこれだけです。IE、Firefox などはすべて正常に動作しています。メイン ウィンドウは常に特定できますが、今回はまったくウィンドウが見つかりません。
誰かがなぜこれを行っているのかを説明し、この問題を解決する (または回避策を見つける) のを手伝ってくれるのではないかと思います。よろしくお願いします。