2011-11-28 15 views
7

के अलावा अन्य चेकबॉक्स खोजें, मैं अपने ककड़ी परीक्षण में एक चेकबॉक्स की जांच करने की कोशिश कर रहा हूं, लेकिन मैं यह नहीं समझ सकता कि आईडी, नाम या अन्य चीज़ों के अलावा किसी अन्य चीज़ से इसे कैसे खोजा जाए। लेबल। मैं इस त्रुटि हो रही पर रखने:ककड़ी Capybara आईडी, नाम, या लेबल

cannot check field, no checkbox with id, name, or label 'xxxx' found 

मैं अनन्य मानों के साथ प्रत्येक बॉक्स के लिए 'पहचानकर्ता' की एक विशेषता जोड़ लिया है, और इन शर्तों से बॉक्स को खोजने के लिए चाहते हैं।

उत्तर

7

क्या आपका मतलब है कि आपने प्रत्येक चेकबॉक्स में identifier नामक एक नई विशेषता जोड़ दी है? यदि ऐसा है तो आप एक सीएसएस लोकेटर का उपयोग कर उन्हें खोजने के लिए सक्षम हो सकता है: (। settrue जांच के चेकबॉक्स यह, false का उपयोग इसे अचयनित करने के लिए आईएनजी)

find(:css, "[identifier='#{my_checkbox_identifier}']").set(true)

+0

हाँ, तुम सही हो - मैं मतलब मुझे लगता है कि एक विशेषता के रूप में जोड़ा। हालांकि, जब मैं उस कोड को आज़माता हूं, तो मुझे यह त्रुटि मिलती है: सीएसएस खोजने में असमर्थ "[पहचानकर्ता = 'चेक: एनसीओ']" (कैपिबारा :: एलिमेंट नॉटफाउंड)। जेनरेट किया गया HTML है:

+0

मुझे उस कोड को आजमाने के लिए समय नहीं मिला, शायद आपको इसकी आवश्यकता है तत्व निर्दिष्ट करें उदाहरण के लिए 'इनपुट [पहचानकर्ता = ...' –

+0

अभी भी मेरे लिए काम नहीं कर रहा है (सीएसएस "इनपुट [पहचानकर्ता = \" जांचने में असमर्थ: एनसीओ \ "]" (कैपिबारा :: एलिमेंट नॉटफाउंड))। –

2

इस सवाल को साकार है बल्कि पुराना, उत्तर अभी भी किसी के लिए उपयोगी हो सकता है। मैं काम करने के लिए निम्न पाया:

find(:xpath, "//input[@identifier='my_checkbox_identifier']").set(true)

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