无法从量角器测试中的元素值 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);
});
所以我试图从一个元素的值中获取一个字符串值 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);
});