1

watiN を使用してテストのコーディングを開始していますが、SelectList がフォーカスされているときにユーザーがキーを押すことをシミュレートするのに問題があります。これは、SelectList の OnKeyUp イベントによってトリガーされるクライアント側の JavaScript 関数が正しく実行されることをテストするためのものです。

SelectList にフォーカスを与え、キーボードの「o」キーを押すユーザーをシミュレートするにはどうすればよいですか?

私は最新の WatiN リリースを使用しており、VS2008 で C# 単体テストを行っています。コーディングしました

ie = new IE(myTestPageURL);
SelectList mySelect = ie.SelectLists[0];
mySelect.Focus();
mySelect.KeyPress('o');
Assert.IsTrue(mySelect.SelectedItem != null);

私の選択リストには「One」というオプションがあるため、「o」キーを押すと、それが選択されたアイテムになります。ただし、SelectList がフォーカスを失い、テストが失敗することを除いて、keyPress 呼び出しが行われたときに何も起こりません。

4

4 に答える 4

0

ありがとう、グラム。Element.FireEventを使用するとうまくいきます。興味のある人にとっては、コードは次のようになりました。

[TestMethod]
public void KeyboardSelection_OptionMatches()
{
    ie = new IE("http://localhost:7561/WebSite2/Default.aspx");
    SelectList mySelect = ie.SelectLists[0];
    mySelect.Focus();
    NameValueCollection nvc = new NameValueCollection();
    nvc.Add("charCode", ACharCode); //Constant for test - equals '65'
    nvc.Add("keyCode", ACharCode);
    // this should select the "A" option
    mySelect.FireEvent("onkeydown", nvc);
    // this should move the selected option to "aardvark"
    mySelect.FireEvent("onkeydown", nvc);
    string selectedValue = mySelect.SelectedItem.ToLower();
    ie.Close();
    Assert.AreEqual(selectedValue, "aardvark");
}

}

于 2011-05-18T05:35:29.167 に答える
0

カレンダー コントロールで同様の問題が発生し、コントロールで .Blur() メソッド/イベントを呼び出して解決しました。

于 2012-09-10T08:22:16.380 に答える
0

SelectList.Select()ドロップダウン項目を選択するために使用します。

しかし、javascript イベントをテストしたいので、javascript イベントを明示的にElement.FireEvent().

また、TextFieldオブジェクトには、ユーザーの入力をシミュレートし、関連するすべてのイベントをトリガーするメソッドがありますが、 forは表示されTypeText()ませんでした。二人で解決できるかもしれません。TypeTextSelectList

于 2011-05-11T22:13:18.163 に答える