使用angular js app中的量角器测试文本字段的maxlength属性

时间:2015-10-29 13:08:44

标签: angularjs protractor e2e-testing

我有一个文本字段。我想测试输入的字符是否小于15。请找到以下代码。

<div input-container placeholder="fname">
   <input fr-validate type="text" class="form-control border-radius-0" ng-maxlength="15" ng-model="fname" />
</div>

2 个答案:

答案 0 :(得分:1)

是的,您需要使用getAttribute('value')来获取输入值,但它不会像@MrWoGu建议的那样直接工作。 element.getAttribute('value') 会返回一个承诺,您需要明确地解决它:

element.getAttribute('value').then(function (value) {
    expect(value.length).toBeLessThan(15);
});

或隐含地使用expect() - 修补它以解决承诺。现在,问题是,选择什么匹配器检查字符串长度。以下是选项(包括来自jasmine-matchers包的匹配器):

expect(element.getAttribute('value')).toMatch(/.{1,14}/);
expect(element.getAttribute('value')).toBeShorterThan("012345678901234");

虽然可能有一种更好的方法可以用一个匹配器在一行中解决它。制作custom matcher也是一种选择。

答案 1 :(得分:0)

在量角器中,您必须将getAttribute用于文本字段。

试试这个:

if (element.getAttribute('value').length < 15)
{
    // less than 15
}

文档:https://github.com/angular/protractor/blob/master/docs/faq.md#the-result-of-gettext-from-an-input-element-is-always-empty