wpf アプリケーションの ui テストを自動化します。いくつかの手順を実行した後、コントロールを見つけようとしていますが、常に FindFirst または FindAll メソッドを使用すると、ウィンドウ内の多くのコントロールが失われます。今、私は実験をしました: パート1:
System.Diagnostics.Process.Start(@"C:\application.exe");
Thread.Sleep(2000);
Condition windowCondition = new PropertyCondition(AutomationElement.NameProperty, "Window Title");
AutomationElement window = AutomationElement.RootElement.FindChildByCondition(windowCondition);
window.SetFocus();
int x = 512;
int y = 384;
SetCursorPos(x, y);
// Click on coordinates:
mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
その後、必要なすべてのコントロールを見つけることができ、すべてのツール (UISpy、UIAVerify など) ですべてのコントロールを見つけることができます。
パート 2: 2 つの文字列のみを追加します。
System.Diagnostics.Process.Start(@"C:\application.exe");
Thread.Sleep(2000);
Condition windowCondition = new PropertyCondition(AutomationElement.NameProperty, "Window Title");
AutomationElement window = AutomationElement.RootElement.FindChildByCondition(windowCondition);
// New strings here:
Condition controlCondition = new PropertyCondition(AutomationElement.AutomationIdProperty, "ConnectButton");
AutomationElement control = window.FindFirst(TreeScope.Descendants, controlCondition);
window.SetFocus();
int x = 512;
int y = 384;
SetCursorPos(x, y);
// Click on coordinates:
mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
そして今、これらのコントロールが実際には表示されておらず、表示されているコントロールが検出されていないことがわかります。
どうしたの?どうも