在e2e测试中,我想模拟输入字段中的用户输入。我的输入字段中包含最大长度。我想要考虑maxlength,但我没有成功找到解决方案。这是我尝试过的:
<input type="text" id="myField" maxlength="10" ng-model="myModel" />
<span>{{myModel}}</span>
1)输入(“myModel”)。输入(“ABCDEFGHIJKLMNOPQRSTUVWXYZ”)。 myField输入和myModel模型都设置为“ABCDEFGHIJKLMNOPQRSTUVWXYZ”。预期结果:“ABCDEFGHIJ”
2)元素(“#myField”)。val(“ABCDEFGHIJKLMNOPQRSTUVWXYZ”)。 myField输入设置为“ABCDEFGHIJ”。哪个是完美的!但myModel为null。
你们有解决方案吗?我不想使用ngMaxlength,因为我想阻止用来输入10个以上的字符。
非常感谢!
答案 0 :(得分:1)
你可以扩展angular-scenario dsl并使用类似于这个的函数在ngModelController中注入一个值
function typeIn(element, str) {
var maxlength = parseInt(element.attr('maxlength'), 10);
var value = element.val() + str;
if (maxlength !== NaN) {
value = value.substr(0, maxlength);
}
element.val(value);
element.controller('ngModel').$setViewValue(value);
element.scope().$apply();
}