0
我寫了下面的代碼(頁面對象模式)。正常工作。 但是,我不喜歡這樣,因爲我無法從「pressHelpLink」中刪除「then」。請將代碼添加到getElementByLink中。如何很好地解決硒的承諾?量角器
我想看看ElementFinder承諾(而不是ManagedPromise)爲getElementByLink(「幫助」)
如何很好地解決硒承諾的結果呢?
var self = Page.create({
url: {value: ''},
// function:
getElementByLink: {
value: function (link) {
return element.all(by.repeater('items')).then(function (el) {
var my_array = el.map(function (el) {
return el.element(self.by.xpath('a'));
});
var element_array_finder = protractor.ElementArrayFinder.fromArray(my_array);
var element = element_array_finder.filter(function (el) {
return el.getText().then(function (text) {
return text === link;
})
});
return element;
}).then(function (element) {
world.expect(element.length).equal(1);
return element[0];
});
}
},
// elements:
HelpLink: {
get: function() {
return self.getElementByLink('Help');
}
},
// method:
pressHelpLink: {
value: function() {
return self.HelpLink.then(function (el) {
return el.click()
});
}
},
});
用這種方法,我可以縮短代碼。但是在網站上可能會出現幾個這樣的元素。 – flig