5

angularjs を使用して作成されたセレンの Web ページをテストしようとしています。このページには、ユーザーが入力するテキスト フィールドがあります。ユーザーがテキスト フィールドに入力すると、Angular はすべてのキーストロークを取得し、stackoverflow の質問に入力するとプレビューが生成される様子を正確にオンザフライで表示します。:)

私の問題は、それをテストする方法がわからないことです。テキストフィールドをクリックして入力すると、機能します。私は、セレンタイプのコマンド、typeKeysコマンド、mousedownおよびmouseupコマンドを使用してから、typeKeysを使用してユーザーの入力を模倣しようとしました。しかし、トリガーされていないイベント ハンドラーがあるかのように機能していません。イベントがトリガーされるように、人間のタイプを模倣する必要があります。これは私が考えていることですが、うまくいきません。

<tr>
  <td>mouseDown</td>
  <td>name=appName</td>
  <td></td>
</tr>
<tr>
  <td>mouseUp</td>
  <td>name=appName</td>
  <td></td>
</tr>
<tr>
  <td>typeKeys</td>
  <td>name=appName</td>
  <td>foobar</td>
</tr>

JavaScriptを使用する方法があれば、それも受け入れられます。ありがとう。

4

2 に答える 2

5

Selenium IDE を使用して Angular JS フォーム フィールドをテストすると、同じ問題が発生しました。focus、click、clickAt、keypress などのほぼすべての既知の組み合わせを試しました。最終的には、sendKeys コマンドを使用してテキストをフィールドに入れることが有効であることがわかりました。したがって、Selenium-IDE では、コマンドは

sendKeys | xpath=(//input[@type='text'])[2] | TEXT To Enter

xpath を使用したことに注意してください。ただし、ターゲットの識別に何を使用したか (css=、xpath、//div) は問題ではありませんでした。いずれの識別子も機能し、sendKeys を使用してトリックを実行しただけです。

于 2013-02-05T13:20:56.010 に答える
1

フォーカスコマンドまたはクリックコマンドのいずれかを試してください。

于 2012-07-24T02:50:28.867 に答える