无法从量角器测试中的元素值 return 字符串

Cannot return string from value of element in protractor test

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

这是元素:

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

我正在寻找一种方法来获取模型值或属性值(都可以)。模型价值甚至可能更好。

这是我尝试解决这里的承诺和 return 结果:

// 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); 总是 return 为 value null,我似乎无能为力解决这个问题。我确定我做错了什么,因为我是量角器的新手,这看起来很简单。还有其他人遇到过这种行为吗?

对于评论来说太大了,仍然是一个猜测,但是制作一个 等待 input 元素的 value 属性值怎么样不是 null:

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);
});

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

groupCode.evaluate('groupCode').then(function(value) {
    console.log(value);
});