मूल्यांकन() नामक एक फ़ंक्शन है। डोम में एक तत्व खोजें और फिर अभिव्यक्ति चलाएं।
उदाहरण के लिए
। आप http://angularjs.org/ वेबसाइट में सब की संख्या की गणना (के तहत कुछ नियंत्रण जोड़े) चाहते हैं, ऐसा करते हैं: चांदा में तत्व एक्सप्लोरर
ओपन
./node_modules/protractor/bin/elementexplorer.js
browser.get('http://angularjs.org/')
element(by.model('todoText')).evaluate('todos.length').
then(function(count) {
console.log(count)
});
यह आपको एक 2
देना चाहिए तुम भी executeAsyncScript
browser.executeAsyncScript(function(callback) {
// Here we use document.body, but your app may live under a different
// element.
var service = angular.element(document.body)
.injector()
.get('myService');
service.query({}, function(data) {
callback(data);
});
}).then(function (output) {
console.log(output);
});
उपयोग कर सकते हैं एक उदाहरण देखें: https://github.com/andresdominguez/protractor-meetup/blob/master/test/e2e/api-helper.js
स्रोत
2013-12-16 20:16:08
समझ गया, मुझे executeAsyncScript निष्पादित करने दें। पहली बार एक दायरे पर सरल चीजों के अधिक निष्पादन के लिए प्रतीत होता है। – wlingke
गीथूब पर प्रोटैक्टर-मेटुप द्वारा प्रदान किए गए उदाहरण उत्कृष्ट हैं, इसके लिए बहुत बहुत धन्यवाद। – FireDragon
ध्यान दें कि दूसरा संस्करण वास्तव में ** ** एक नया इंजेक्टर बनाता है। इससे त्रुटियों का कारण बन सकता है: 'अज्ञात प्रदाता: $ rootElementProvider' 'angular.element ([DOM तत्व]) का उपयोग करें। इंजेक्टर()। (' MyService ') प्राप्त करें;' रूट रूट डीओएम तत्व (जहां पर एनजी-ऐप सेट किया गया है) मौजूदा इंजेक्टर प्राप्त करने के लिए। – Vladius