1

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);

そして今、これらのコントロールが実際には表示されておらず、表示されているコントロールが検出されていないことがわかります。

どうしたの?どうも

4

0 に答える 0