Visual Studio 2010 Ultimate - Visual C# - codedUI を使用しています。
クライアントの自動テスト (スモーク テスト、回帰テストなど) をまとめていますが、テストの自動化を行おうとしているアプリケーションは協調的ではありません。クライアントのすべての Web アプリを問題なく自動化しましたが、デスクトップ アプリケーションでは、どのコントロール間でも一意の識別子を取得できないようです。
これは、アプリケーションのツリー構造をたどるコード化された UI の記録のサンプルです。リスト内のいくつかの異なる項目を強調表示し、リストを展開し、項目をクリックし、起動するウィンドウをブラウズします。
/// <summary>
/// SomeRecordedMethod
/// </summary>
public void SomeRecordedMethod()
{
#region Variable Declarations
WinTitleBar uINavigatorTitleBar = this.UISomeRandomCompanyWindow.UINavigatorWindow.UINavigatorTitleBar;
WinEdit uIObjectdescEdit = this.UISomeRandomCompanyWindow.UINavigatorWindow.UIDw_navigatorClient.UIObjectdescEdit;
WinClient uICalendar1Client = this.UISomeRandomCompanyWindow.UIMaintainCalendar1Window.UIItemWindow.uICalendar1Client;
#endregion
// Click 'Navigator' title bar
Mouse.Click(uINavigatorTitleBar, new Point(241, 9));
// Click 'objectdesc' text box
Mouse.Click(uIObjectdescEdit, new Point(19, 11));
// Click 'objectdesc' text box
Mouse.Click(uIObjectdescEdit, new Point(39, 10));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(37, 11));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(20, 11));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(42, 5));
// Double-Click 'objectdesc' text box
Mouse.DoubleClick(uIObjectdescEdit, new Point(61, 11));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(632, 141));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(671, 200));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(675, 301));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(686, 396));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(686, 544));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(478, 547));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(579, 552));
// Click 'Calendar [1]' client
Mouse.Click(uICalendar1Client, new Point(579, 552));
}
「objectdesc」と「Calendar [1]」の複数のインスタンスに注意してください。すべての重複発生は異なるコントロールですが、アクションの記録はそれを拾っていません.
テストを実行しようとすると、明らかに次のようになります。
Visual Studio で自動化をテストするのは初めてなので、現時点でどのようなオプションがあるかわかりません。アドバイスをいただければ幸いです。
ありがとうございました