在验收测试中,输入文本后按 Enter 键会触发事件。我尝试填写文本并使用 keyEvent 按 Enter 键。
PS:Testem 忽略 keyEvent。
HTML:
<div class="issue-container">
<div class="create-container">
<div class="input-field ui-textarea md-animated ember-view">
<label id="ember1369-label" for="ember1369-input" class="active">Add an issue</label>
<textarea data-test-id="txtid" id="ember1369-input" class="md-textarea" style="height: 21.5px; overflow: hidden;"></textarea></div></div></div>
验收测试:
test('review-an-element', async function(assert) {
await fillIn(testSelector('txtid'), 'Input is typed here and then hit enter');
await keyEvent(testSelector('txtid'), 'keypress', 13);}); //hitting enter
我的 jQuery 尝试:
var e = jQuery.Event("keyup");
e.which = 13;
e.keyCode = 13;
await $('.md-textarea').trigger(e);
最佳答案
您需要处理 keyup
事件,而不是 keypress
事件。 keypress
事件仅针对产生输出的按键(例如字母键)触发。引用:https://developer.mozilla.org/en-US/docs/Web/Events/keypress
对于您的验收测试:
更改
await keyEvent(testSelector('txtid'), 'keypress', 13);
至
await keyEvent(testSelector('txtid'), 'keyup', 13);
编辑:testSelector()
帮助器已弃用 - https://github.com/simplabs/ember-test-selectors/pull/134
关于javascript - 使用 jQuery 在文本区域中按 Enter 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222167/