从Spec调用函数时,代码运行良好的' aria-label'已验证/已检查,但是true / false未返回到规格以检查.toBe(true)
页面对象:功能
checkOptionsEnabled: function(){
var status = false;
element.all(by.repeater('item in items')).then(function(options) {
options.forEach(function(option) {
option.getAttribute("aria-label").then(function(ariaLabel) {
expect(ariaLabel).toContain('enabled');
});
});
});
return status;
},
规范:调用功能
page.journeyModes.checkAll.click();
expect(page.journeyModes.checkOptionsEnabled()).toBe(true);
page.journeyModes.uncheckAll.click();
expect(page.journeyModes.checkOptionsDisabled()).toBe(true);
错误
1) TravelInfo As a user I can Select Journey Modes
Message:
Expected false to be true.
Stacktrace:
Error: Expected false to be true.
at new jasmine.ExpectationResult
C:\用户\ sunil.sharma \文件\ PortalAutomatedTests \ node_modules \量角器\ n de_modules \ minijasminenode \ lib中\茉莉1.3.1.js:137:32) 在[object Object]。
答案 0 :(得分:1)
您需要的是reduce()
:
checkOptionsEnabled: function() {
return element.all(by.repeater('item in items')).reduce(function(acc, elem) {
return elem.getAttribute("aria-label").then(function (attr) {
return acc && (attr.indexOf("enabled") >= 0);
});
}, true);
},
这基本上是检查enabled
属性中是否存在aria-label
并累积结果布尔值。