我正在从一个表单中收集值以放入一个数组,该数组将与另一个值数组进行比较,以确保数组匹配形成我的测试规范。
以下是两者目前如何匹配和失败的原因:
Expected [ '8', '{
"Name": "JoeNew"
}', 'Chilli', 'Customer Group 2' ] to equal [ '8', '{"Name":"JoeNew"}', 'Chilli', 'Customer Group 2' ]
导致问题的值是从textarea字段中提取的JSON字段。需要修剪第一个数组的JSON以匹配第二个数组{"Name":"JoeNew"}'
中的JSON。
我正在以这种方式收集价值:
browser.params.updatedValues.push(element(by.id(fieldName2)).getAttribute('value'));
这是通过以下方式解决的:
protractor.promise.all(browser.params.updatedValues).then(function (resolvedValues) {
browser.params.updatedValues = resolvedValues;
expect(browser.params.updatedValues).toEqual(browser.params.newValues);
});
===============
我试图将值传递给像这样的函数:
browser.params.updatedValues.push(trimResult(element(by.id(fieldName2)).getAttribute('value')));
function trimResult(toTrim) {
return toTrim.trim();
};
但是这告诉我修剪不是一个功能。我也尝试了以下内容,类似于this solution:
console.log("Values is: " + element(by.id(fieldName2)).getAttribute('value').then(function(trim){return trim.trim();}));
这给了我Values is: Promise::30446 {[[PromiseStatus]]: "pending"}
。
请帮忙!