मुझे पहले से ही पता चला है कि जब मैं टेक्स्ट फ़ील्ड, टेक्स्ट एरिया या पासवर्ड फ़ील्ड में मान सेट करना चाहता हूं, तो मैं fill_in something, :with => some_value
में आईडी, नाम या लेबल something
के रूप में उपयोग कर सकता हूं। हालांकि जब मैं <input type="hidden">
फ़ील्ड पर मान सेट करने का प्रयास करता हूं तो ऐसा दृष्टिकोण विफल हो जाता है (और मैं इसे करना चाहता हूं क्योंकि वे आम तौर पर क्लाइंट-साइड स्क्रिप्ट भरते हैं जिन्हें मैं अलग से परीक्षण करता हूं)। मैं कैपिबरा के साथ इस तरह के एक छिपे हुए क्षेत्र को कैसे सेट कर सकता हूं? क्या यह संभव है?कैपिबरा के साथ छिपे हुए क्षेत्र को कैसे भरें?
HTML:
<input id='offer_latitude' name='offer[latitude]' type='hidden'>
<input id='offer_longitude' name='offer[longitude]' type='hidden'>
कल्पना:
describe "posting new offer" do
it "should add new offer" do
visit '/offer/new'
fill_in 'offer[latitude]', :with => '11.11'
fill_in 'offer[longitude]', :with => '12.12'
click_on 'add'
end
end
देता है:
1) posting new offer should add new offer
Failure/Error: fill_in 'offer[latitude]', :with => '11.11'
Capybara::ElementNotFound:
cannot fill in, no text field, text area or password field with id, name, or label 'offer[latitude]' found
आम तौर पर एक व्यक्ति एक छिपे हुए क्षेत्र में भर नहीं सकता है, इसलिए कैपिबरा उन्हें भरने में सक्षम नहीं है। Https://groups.google.com/forum/ देखें? अधिक चर्चा के लिए # ग्रुप #! विषय/रूबी-कैपिबारा/एस्टलविटकिरा। लेकिन आम तौर पर आप या तो सर्वर पर इसे पॉप्युलेट करते हैं या जावास्क्रिप्ट का उपयोग करते हैं .. – Doon
@ डून की टिप्पणी बहुत सच है। यदि आप छुपा इनपुट का निरीक्षण/परिवर्तन करना चाहते हैं, तो शायद आप गलत टूल का उपयोग कर रहे हैं। Capybara को विभिन्न परिदृश्यों में पूरे एप्लिकेशन का परीक्षण करने के लिए डिज़ाइन किया गया है, न कि आपके जेएस घटकों का परीक्षण न करें। चेकआउट [जैस्मीन] (http://pivotal.github.com/jasmine/) या [चाई] (http://chaijs.com/)। हालांकि ऐसी स्थितियां हैं जहां यह समझदार है, उदाहरण के लिए एचटीएमएल 5 इनपुट भरना जो असंगत ब्राउज़र में पॉलीफिल हैं। पॉलीफिल अक्सर उचित इनपुट छुपाते हैं और अतिरिक्त मार्कअप डालें। – skalee