Web アプリケーションをテストするための自動テスト アプリケーションを開発しています。ここでは、Web アプリケーション コードによって動的に作成されているコントロールを見つけることができません。それらの特性は変化し続けます。
例:一部のコントロールは、最初の実行では表示されませんが、次の実行では表示されます。Web アプリケーションは、Web ページ内のすべてのコントロールの情報を格納する XML ファイルも作成します。
Web アプリケーションをテストするための自動テスト アプリケーションを開発しています。ここでは、Web アプリケーション コードによって動的に作成されているコントロールを見つけることができません。それらの特性は変化し続けます。
例:一部のコントロールは、最初の実行では表示されませんが、次の実行では表示されます。Web アプリケーションは、Web ページ内のすべてのコントロールの情報を格納する XML ファイルも作成します。
私もずっと前に CodedUI の問題に直面し、コントロールのプロパティを編集して解決しました。私はあなたにお勧めします、
(1) 検索する動的コントロールのプロパティに移動し、
(2) propertyName、PropertyExpressionOperator、および PropertyValueが見つかります。
*(example : propertyName = id,
PropertyExpressionOperator = equals,
PropertyValue = button12)*
(3) ここで、 PropertyExpressionOperator (つまり equals ) を「contains」に変更し、PropertyValueで変化し続ける値を削除します(つまり、button12 -> button )
(4) プロパティは次のようになります
*(example : propertyName = id,
PropertyExpressionOperator = contains,
PropertyValue = button)*
(5) これで、それを見つけることができます。
それがあなたを助けると信じてください。
トゥ・フイン。
これを行うことができるCUITe(コード化されたUIテスト拡張フレームワーク)を使用しました。
たとえば、変更セット 21564の Sample_CUITeTestProject\BrowserWindowTests.cs には、次のようなサンプル単体テストがあります。
[TestMethod]
[WorkItem(608)]
public void GenericGet_WithHtmlControls_GetsControlsDynamically()
{
//Arrange
CUITe_BrowserWindow bWin = CUITe_BrowserWindow.Launch("http://mail.google.com", "Gmail: Email from Google");
//Act
bWin.Get<CUITe_HtmlEdit>("Id=Email").SetText("xyz@gmail.com");
bWin.Get<CUITe_HtmlPassword>("Id=Password").SetText("MyPa$$Word");
bWin.Get<CUITe_HtmlInputButton>("Id=signIn").Click();
bWin.Close();
}