使用一些辅助函数,您可以轻松完成。辅助对象只是包裹了量角器,使其使用起来更加理智和安全。尤其是在远程系统上运行时。
var helper = {
getElement: function (selector) {
return element(by.css(selector));
},
resolveSelector: function (selector) {
var el;
if (typeof selector === 'string') {
el = self.getElement(selector);
} else {
el = selector;
}
return el;
},
waitForElementClickable: function (selector) {
var el = self.resolveSelector(selector);
var condition = function () {
return self.waitForElement(el).then(function () {
return self.isElementEnabled(el);
});
};
return self.wait(condition, 15000, 'Element not clickable. (' + selector + ')');
},
setElementValue: function (selector, value) {
var el = self.resolveSelector(selector);
return self.waitForElementClickable(el).then(function () {
el.click().clear().sendKeys(value);
});
},
getElementValue: function (selector) {
var el = self.resolveSelector(selector);
return el ? el.getAttribute('value') : '';
}
}
然后你可以使用常规的 CSS 选择器来设置你的值:
helper.setElementValue('[ng-model="data.person"] input:nth-child(1)', '1st Input Value');
helper.setElementValue('[ng-model="data.person"] input:nth-child(2)', '2nd Input Value');
helper.setElementValue('[ng-model="data.person"] input:nth-child(3)', '3rd Input Value');
您可以通过以下方式检查预期值:
expect(helper.getElementValue('[ng-model="data.person"] input:nth-child(1)')).toEqual('something')