2012-12-19 16 views
7

मेरी रेल में 3 एप्लिकेशन, मैं इस तरह काम करने के लिए jQuery के attr() विधि का उपयोग कर:मैं यह जांचने के लिए कैपिबारा का उपयोग कैसे करूं कि jQuery की प्रोप विधि का उपयोग करते समय एक फॉर्म तत्व अक्षम है?

$('#application_dust_type_id').attr('disabled', 'disabled'); 

मैं टेस्ट/यूनिट, capybara और capybara-वेबकिट का प्रयोग करेंगे के साथ इस परीक्षण करने के लिए:

,

$('#application_dust_type_id').prop('disabled', true) 

लेकिन अब ऊपर दावे विफल रहता है, भले ही जावास्क्रिप्ट अभी भी काम करता है:

assert page.has_selector? 'select[id=application_dust_type_id][disabled=disabled]' 

अब, मैं, प्रोप विधि का उपयोग करने के लिए स्विच करने के लिए कोशिश कर रहा हूँ के रूप में सिफारिश की गई है jQuery ब्राउज़र में वही।

कैपिबारा का उपयोग करके तत्व की संपत्ति (एक विशेषता के बजाय) के आधार पर मैं एक दावा कैसे कर सकता हूं?

उत्तर

7

सिर्फ इतना है कि के रूप में एक disabled विशेषता के अस्तित्व के लिए देखने का प्रयास करें कि सभी वास्तव में एक इनपुट को निष्क्रिय करने के लिए आवश्यक है:

assert page.has_selector? 'select[id=application_dust_type_id][disabled]' 

ध्यान दें कि एक disabled विशेषता के मान विवादास्पद है। आप disabled="false" या disabled="foobar" सेट कर सकते हैं और तत्व अक्षम के रूप में प्रस्तुत किया जाएगा।