1

実行される手順
1. データをプログラムで入力する必要がある Web ページを開きます
。 2. 要素 ID を渡して要素インスタンスを取得します。
3. ArtOfTest.WebAii.TestTemplates.BaseTest クラスの Actions インスタンスで、要素と textToSet を渡して SetText 関数を呼び出します。

期待される解決策
テキスト ボックスには常にテキストを入力する必要があります。

実際の出力
テキストは、テキスト ボックスに常に入力されるとは限りません。正しく入力することもあれば、値を入力せずにスキップすることもあります。デバッグ時に、要素インスタンスが適切に取得され、SetText 関数が呼び出され、例外がスローされないことが確認されました。値が入力されていない場合は、関数の先頭にコントロールを再度設定して実行すると、テキスト ボックスに値が設定されます。

この奇妙な動作の理由を誰か教えてもらえますか? 詳細が必要な場合はお知らせください。

4

1 に答える 1

0

あなたの説明はタイミングの問題のように聞こえます。通常、テスト スクリプトは非常に高速に実行されるため、Web アプリケーションを簡単に追い越してしまいます。デバッグ中にテストを実行しても (つまり、低速またはシングル ステップで実行)、フル スピードで実行すると断続的に失敗する場合は、ほぼ確実にタイミングの問題が発生しています。テスト スクリプトがデータを入力しようとしているときに、Web アプリケーションがテキスト入力を受け入れる準備ができていない可能性があります。これは、Web アプリケーションが AJAX ポストバックを実行している場合によくある問題です。このような問題を解決する最も簡単な方法は、SetText 呼び出しの直前に固定遅延を追加することです。より高度な手法は、Web アプリケーションに含まれるプロパティまたは要素を監視して、入力の準備ができたことを検出し、それが設定されるのを待つことです。

Cody Telerik テクニカル サポート チーム

于 2011-04-11T15:26:15.813 に答える