在量角器测试中不能从元素值返回字符串

时间:2015-04-01 16:45:07

标签: javascript angularjs protractor

所以我试图从这个承诺的解决方案中获取一个元素值返回的字符串值。我想将原始字符串值传递给我在量角器测试中构建的另一个函数。

这是元素:

<div style='hidden' >
    <input id="group-sendgrid-hidden-input" ng-model='groupCode' value='dangyo' >
</div>

我正在寻找获得模型值或属性值的方法(两者都可以)。模型值甚至可能更好。

这是我尝试在此处解决承诺并返回结果:

// first get the element driver object
var groupCode = element(by.id('group-sendgrid-hidden-input'));

// next resolve a promise provided by this element
groupCode.getAttribute('value').then(function(value){

    console.log( 'should be a string: ' + value);

    return value;
});

此处console.log( 'should be a string: ' + value);始终为null返回value,我无能为力解决此问题。我确定我做错了,因为我是量角器的新手,这看起来很简单。有没有其他人遇到这种行为?

1 个答案:

答案 0 :(得分:4)

这对于评论来说太大了,仍然可以猜测,但如果让custom "Expected Condition"等待input元素的value属性值不是{ {1}}

null

您还可以使用evaluate()检索模型值:

var hasNotNullValue = function(elementFinder) {
    return function() {
        return elementFinder.getAttribute("value").then(function(value) {
            return !!value;  // is not null
        });
    }; 
};

var groupCode = element(by.id('group-sendgrid-hidden-input'));
browser.wait(hasNotNullValue(groupCode), 10000);

groupCode.getAttribute('value').then(function(value){
    console.log('should be a string: ' + value);
});