私は Jasmine で FuncUnit を使用して Web アプリケーションをテストしています。私が一貫して遭遇した問題の 1 つは、型番号の入力への入力に関連しています。
<input type="number" min="0.01" step="0.01" pattern="[0-9]+([\.|,][0-9]+)?" class="form-control m-wrap m-ctrl-large" placeholder="10" onkeypress=" return isDecimalKey(event); ">
メソッドはisDecimalKey
基本的にタイプコードをチェックして、ユーザーが数字または小数点を入力していることを確認します。
function isDecimalKey(e) {
var charCode = (e.which) ? e.which : event.keyCode;
if (charCode !== 46 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
else
return true;
}
入力を手動で入力する場合、Ctrl+A で現在の値を強調表示し、バックスペースまたは削除キーで削除して、新しい値を入力できます。ただし、FuncUnit で同じことをしようとすると、次のエラーが発生します。
Uncaught InvalidStateError: Failed to read the 'selectionStart' property from 'HTMLInputElement': The input element's type ('number') does not support selection.
次の挿入方法を試しました。
F('input').visible().click().type('[ctrl]a[ctrl-up][delete] 6');
F('input').visible().click().type('[\b][\b] 6');
F('input').visible().click().type('6');
F('input').visible().dblclick().type('6');
これまでのところ、上記のどれも機能していません。この入力の値を操作するための最良の方法は何ですか? ありがとう!