该.column()
会只对工作的binding
S,而不是model
秒.
在您的情况下,使用by.model()
定位器:
var result = element.all(by.repeater('field in master.linker')); result.each(function(entry) { var input = entry.element(by.model("field.text")); // do smth with the input });
如果要获取输入值,请使用map()
:
var inputValues = result.map(function(entry) { return entry.element(by.model("field.text")).getAttribute("value"); }); // printing out input values inputValues.then(function (values) { console.log(values); });
回答评论中的其他问题:
我有一个数组,没有我的ng-repeat中的其他字段,我如何比较"if(field.country_name ===""en"){expect(field.text).to.eventually.equal(value)}" ?
用途filter()
:
var fields = element.all(by.repeater('field in master.linker')); fields.filter(function (field) { return field.element(by.binding("field.country_name")).getText().then(function (country) { return country === "en"; }); }).then(function (filteredFields) { var input = filteredFields[0].element(by.model("field.text")); expect(input.getAttribute("value")).to.eventually.equal(value); });;