Capybara: मैं अपनी आईडी द्वारा इनपुट फ़ील्ड कैसे भर सकता हूं


88

मेरे पास यह है:

<input class="string optional" 
    id="course_group_courses_attributes_2_name" 
    name="course_group[courses_attributes][2][name]" 
    placeholder="Lengua" 
    size="15" 
    type="text" />
</div> 

मैं अपनी ID द्वारा उस फ़ील्ड को कैसे भर सकता हूँ?

जवाबों:


126

fill_in आईडी को पहले पैरामीटर के रूप में स्वीकार करता है:

fill_in 'course_group_courses_attributes_2_name', :with => 'some text'

9
मैंने ऐसा सोचा था, लेकिन यह काम नहीं कर रहा है। ऐसा लगता है कि यह इसे नहीं भरता है। इसे खोजने में कोई त्रुटि नहीं है। यह सिर्फ इसे भर नहीं है।
नेरियन

हो सकता है कि आप प्रश्न और किसी अन्य संबंधित कोड में capybara कोड को शामिल कर सकते हैं।
छापा

मुझे पता चला कि समस्या जहां मोंगॉयड में है। उम्मीदवारों को रिहा करें।
नेरियन

@ नीरियन आह! ख़ुशी हुई कि आपने इसका पता लगा लिया
छापा

क्या हमें इसका हल मिल गया है?
जकस

32

आप इसके साथ भी कर सकते हैं:

find('Id or class here').set('some text')

7

fill_in# प्रतीक के बिना आईडी स्वीकार करता है जो मुझे पहली बार भ्रमित करने वाला लगा। यह भी ध्यान दें कि यदि आपका इनपुट फ़ील्ड एक मोडल में है, तो फ़ील्ड को भरने से पहले आपको संक्रमण या फीका होने की प्रतीक्षा करनी पड़ सकती है।


4

यदि आप simple_form रत्न का उपयोग कर रहे हैं, तो आपको ध्यान देना चाहिए कि यह स्वचालित रूप से आपके प्रपत्र तत्वों को आईडी करता है, इसलिए मैन्युअल रूप से आईडी-इंग तत्वों को स्वयं व्यर्थ है!

वहाँ है; हालाँकि, एक नामकरण सम्मलेन जो simple_form को id तत्वों के रूप में अनुसरण करता है।

object_attribute

तो अगर आप जानकारी भरने जा रहे हैं तो आइए एक संपर्क वस्तु को इस प्रकार कहें:

= simple_form_for @contact do |f|
  = f.input :first_name
  = f.input :last_name

simple_form उसके बाद क्रमशः प्रत्येक फॉर्म एलिमेंट में आईडी जनरेट करेगा:

id="contact_first_name"
id="contact_last_name"

अब आप बस अपने सभी fill_in जरूरतों को पूरा करने के लिए इस नामकरण सम्मेलन का उपयोग कर सकते हैं। उम्मीद है की यह मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.