2015-03-11 5 views
5

एचटीएमएल:चांदा पर सीएसएस के साथ तत्व पता नहीं लगा सकते एनजी-क्लिक करें तत्व

element(by.css('button[ng-click="select(\'none\', $event);"]')); 

प्राप्त होने वाले त्रुटि:

Failed: No element found using locator: By.cssSelector("button[ng-click=\"select('none', $event);\"]")

इस लिंक एक समाधान प्रदान करता

<button class="helperButton ng-scope" ng-if="!isDisabled && displayHelper('none')" ng-click="select('none', $event);" type="button"> × Select None</button> 

साथ पता लगाने की कोशिश कर रहा AngularJS Protractor - Finding an Element on a Page Using Ng-Click Binding लेकिन उसके संदर्भ में फ़ंक्शन के विवरण नहीं हैं। किसी भी सहायता की सराहना की जाएगी।

उत्तर

4

ng-click पर आधारित अपने लोकेटर को काफी विश्वसनीय और पठनीय नहीं है।

by.xpath('//button[contains(., "Select None")]') 

या, वर्ग पर:

इसके बजाय मैं बटन पाठ पर भरोसा होता

by.css('button.helperButton') 

या, आवेदन एचटीएमएल टेम्पलेट्स पर नियंत्रण है, तो - जोड़ने एक id विशेषता और उपयोग:

by.id('mybuttonid') 

आप अभी भी ng-click उपयोग करना चाहते हैं - जाँच करने के लिए starts-with CSS चयनकर्ता सिंटेक्स के उपयोग की कोशिश ng-click विशेषता:

by.css('button[ng-click^=select]') 
+0

मैं बटन पाठ करने की कोशिश की, लेकिन यह है कि अजीब एक्स चरित्र और उन सभी रिक्त स्थान यह नहीं बनाता है काम। – awaken

+0

अच्छी तरह से @awaken, इसलिए मैंने 'शामिल()' का उपयोग किया है। यह अजीब बात है कि आप अभी भी इसका पता नहीं लगा सकते हैं। क्या पृष्ठ पर कोई 'फ्रेम' या' iframe' तत्व हैं? धन्यवाद। – alecxe

+0

पृष्ठ में उन तत्वों की संख्या है जो उन ढूंढने के तरीकों को पूरा करते हैं और मुझे 'चेतावनी मिल जाएगी - लोकेटर द्वारा प्राप्त एक से अधिक तत्व By.xpath ("// बटन [शामिल है,।, \" कोई भी चुनें \ ")]" - पहला परिणाम इस्तेमाल किया जाएगा, इसलिए मैं एनजी-क्लिक – awaken

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