web-dev-qa-db-ja.com

jquery(または純粋なjs)は、テストのために押されたEnterキーをシミュレートします

「Enter」キーを押すユーザーをシミュレートする最良の方法は何ですか? $(element).keypress()は、押された実際のキーを渡すことを許可していないようです。

これは単体テスト用です。

56
morgancodes

デモはこちら

var e = jQuery.Event("keypress");
e.which = 13; //choose the one you want
e.keyCode = 13;
$("#theInputToTest").trigger(e);
88
redsquare

これを純粋なjavascriptで行いたい場合は、以下をご覧ください。


時代遅れ

次のようなことができます(Firefoxの場合)

var ev = document.createEvent('KeyboardEvent');
// Send key '13' (= enter)
ev.initKeyEvent(
    'keydown', true, true, window, false, false, false, false, 13, 0);
document.body.dispatchEvent(ev);

更新

Joeがコメントしているように、 KeyboardEvent が標準になりました。

Enterを実行する同じ例(keyCode 13):

const ke = new KeyboardEvent("keydown", {
    bubbles: true, cancelable: true, keyCode: 13
});
document.body.dispatchEvent(ke);

このページ を使用すると、適切なキーボードイベントを見つけることができます。

51
Fabien Sa