getAttribute return 未解决
getAttribute return unresolved
我只是想将输入值的属性保存到变量中。
这是代码:
var sliderNumber = element.all(by.model('color.red')).get(1);
var firstNum = sliderNumber.getAttribute('value').then(function(value) {
return value;
});
//Some code that changes the sliderNumber attribute
expect(sliderNumber.getAttribute('value')).toEqual(firstNum + 1);
这给了我这样的错误:
Expected '184' to equal Promise::433 ([[PromiseStatus]]: "pending")1.
我也试过:
var firstNum = function() {
return sliderNumber.getAttribute('value').then(function(value) {
return value;
});
}
这根本没有帮助。我该如何兑现这个承诺?
由于 .getAttribute()
return 是一个承诺,它将异步调用您的回调,您需要将测试逻辑放在回调中:
var sliderNumber = element.all(by.model('color.red')).get(1);
// get the initial value
sliderNumber.getAttribute('value').then(function(value) {
// once we've got the initial value, store it, then proceed with your test
var initialValue = parseInt(value, 10);
//Some code that changes the sliderNumber attribute
expect(sliderNumber.getAttribute('value')).toEqual((initialValue + 1).toString());
});
您不能简单地在回调之外获取 return 值,因为在您的其余代码之后可能会或可能不会调用该回调。
我只是想将输入值的属性保存到变量中。
这是代码:
var sliderNumber = element.all(by.model('color.red')).get(1);
var firstNum = sliderNumber.getAttribute('value').then(function(value) {
return value;
});
//Some code that changes the sliderNumber attribute
expect(sliderNumber.getAttribute('value')).toEqual(firstNum + 1);
这给了我这样的错误:
Expected '184' to equal Promise::433 ([[PromiseStatus]]: "pending")1.
我也试过:
var firstNum = function() {
return sliderNumber.getAttribute('value').then(function(value) {
return value;
});
}
这根本没有帮助。我该如何兑现这个承诺?
由于 .getAttribute()
return 是一个承诺,它将异步调用您的回调,您需要将测试逻辑放在回调中:
var sliderNumber = element.all(by.model('color.red')).get(1);
// get the initial value
sliderNumber.getAttribute('value').then(function(value) {
// once we've got the initial value, store it, then proceed with your test
var initialValue = parseInt(value, 10);
//Some code that changes the sliderNumber attribute
expect(sliderNumber.getAttribute('value')).toEqual((initialValue + 1).toString());
});
您不能简单地在回调之外获取 return 值,因为在您的其余代码之后可能会或可能不会调用该回调。