2015-05-07 7 views
18

का उपयोग करके कोई तत्व नहीं मिला प्रोटोटाटर 2.0 में, यदि कोई तत्व प्रदर्शित होता है तो मैं expect() में जांच कर रहा हूं। मैं एक झूठी उम्मीद है, लेकिन अजीब बात यह है कि मैं निम्नलिखित त्रुटि मिलती है:प्रोट्रेक्टर, isDisplayed के साथ() मुझे NoSuchElementError नहीं मिलता है: लोकेटर

NoSuchElementError: No element found using locator: By.id("userForm")

मेरे कोड है:

describe('closeModal', function() { 
    it('should close the alert that appears after registration.', function(){ 
     element(by.id('closeAlertModalButton')).click(); 
     expect(element(by.id('userForm')).isDisplayed()).toBeFalsy(); 
    }); 
}); 

मैं समझता हूँ क्योंकि तत्व पृष्ठ पर अब नहीं है (कि मुझे लगता है कि त्रुटि मिलती है क्या मैं पुष्टि करना चाहता हूं), लेकिन मुझे झूठा नहीं होना चाहिए और कोई त्रुटि नहीं है?

+0

आपको बेहतर उपयोग करना चाहिए IlementPresent या isPresent - त्रुटि आपको वेबड्राइवर तर्क का हिस्सा है –

उत्तर

28

isDisplayed() का उपयोग की जाँच करेगा चाहिए अगर एक तत्व दिखाई दे रहा है या नहीं, लेकिन आप एक तत्व डोम में है या नहीं मौजूद है कि क्या जांच करने के लिए, का उपयोग की जरूरत है isElementPresent() या isPresent():

expect(browser.isElementPresent(element(by.id('userForm')))).toBe(false); 
expect(element(by.id('userForm')).isPresent()).toBe(false); 

यह भी देखें:

+2

आप "प्रोटैक्टर एंजेल" हैं! मैंने यहां आपके उत्तरों से बहुत कुछ सीखा है! धन्यवाद! @alecxe –

+1

@IdanE और मैंने आपके प्रश्नों से बहुत कुछ सीखा है! धन्यवाद! – alecxe

+0

अगर मैं इसे स्थिति में करता हूं। यह काम नहीं कर रहा है। पूर्व। 'if (browser.isElementPresent (element (by.id ('userForm')) ' –

2

यह त्रुटि वेबड्राइवर व्यवहार का हिस्सा है। इस तरह के मामलों के लिए आप बेहतर isPresent या isElementPresent

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