2014-04-08 8 views
9

मैं अपने आवेदन के लिए प्रोटैक्टर का उपयोग करके अंत परीक्षण का अंत लिख रहा हूं। मैं फार्म की त्रुटियां दिखाई दे रही हूँ:लोकेटर का उपयोग करके कोई तत्व नहीं मिला: by.model() त्रुटि

No element found using locator: By.model("address.fullName") error. 

इसी चांदा कोड है जो इस त्रुटि फेंक है:

var angularElement = element(By.xpath('//input[@ng-model="address.fullName"]')); 
:

var angularElement = element(By.model("address.fullName")); 
angularElement.sendKeys("test"); 

हालांकि मैं का उपयोग कर इस तत्व लाने के लिए कर सकती हूं

एचटीएमएल स्निपेट:

इनपुट एनजी-मॉडल = "address.fullName" प्रकार = "टेक्स्ट" वर्ग = "नियंत्रण-इनपुट एनजी-प्रिस्टी ne ng-invalid ng-invalid-required "size =" 40 "name =" fullName "ng-class =" {'आवश्यक फ़ील्ड': isInformationSubmitted} "आवश्यक =" "

मुझे यकीन नहीं है कि यह क्यों घटित हो रहा है। कोई विचार?

+0

आप दृश्य का एक टुकड़ा रख सकते हैं अनदेखी browser.manage().window().maximize();
सूची आइटम में था -opened? एचटीएमएल कैसा दिखता है? –

+1

आंतरिक रूप से, मुझे लगता है कि 'By.model' लोकेटर उस तत्व पर निर्भर करता है जिसमें 'ng-binding' कक्षा लागू होती है। यह वर्ग स्वचालित रूप से कोणीय द्वारा लागू किया जाना चाहिए, लेकिन मैंने ऐसे उदाहरण देखे हैं जहां यह नहीं हुआ ([उदाहरण] (https://github.com/angular/protractor/issues/157))। जांचें कि जिस तत्व को आप ढूंढने का प्रयास कर रहे हैं वह 'ng-binding' कक्षा है या नहीं। यदि नहीं ... मैं * इसे * अपने आप में डालने की अनुशंसा नहीं करता, बल्कि कोणीय में अंतर्निहित समस्या तय होने तक बस एक अलग लोकेटर (xpath या css) पर स्विच कर रहा हूं। –

उत्तर

4

मैं अपने त्रुटि का कारण आइटम पृष्ठ पर नहीं दिखाया गया था या चांदा चर मैं उपयोग करने से पहले तो अपने मॉडल को अद्यतन करने को समाप्त नहीं किया हुआ कुछ करीब त्रुटियों मिला है:
पेज -maximized: अगर तत्व था चांदा के लिए -waiting को अद्यतन करने के लिए यह मॉडल है समाप्त करने के लिए
:

var ptor = protractor.getInstance(); 
ptor.waitForAngular(); 
+2

1.5.0 के बाद से यह 'browser.waitForAngular' होगा - https://angular.github.io/protractor/#/api?view=Protractor.prototype.waitForAngular –

संबंधित मुद्दे