मैं ककड़ी के साथ webrat का उपयोग कर रहा हूँ और मैं परीक्षण करना चाहता हूं कि एक पृष्ठ पर पहले से ही एक रेडियो बटन चेक किया गया है या नहीं। मैं यह कैसे कर सकता हूं? मुझे वेब्रेट में कोई कदम नहीं मिला जो ऐसा कर सकता है।मैं कैसे निर्धारित कर सकता हूं कि रेडियो बटन पहले से चेक किया गया है या नहीं?
उत्तर
input("#my_box").should be_checked
ऐसे मामले हैं जब आप आईड्स या लेबल वाले चेकबॉक्स पर भरोसा नहीं कर सकते हैं या जहां लेबल टेक्स्ट बदलता है। इस मामले में आप Webrat से have_selector
विधि का उपयोग कर सकते हैं।
मेरे कामकाजी कोड से (जहां मेरे पास चेकबॉक्स पर आईडी नहीं है)।
response_body.should have_selector 'input[type=radio][checked=checked][value=information]'
स्पष्टीकरण: परीक्षण सही वापस आ जाएगी, तो दस्तावेज़ के मुख्य भाग एक रेडियो बटन (input[type=radio]
) जो चेक किया गया है शामिल हैं और कहा कि मूल्य "जानकारी"
आप web_steps में निर्मित चेकबॉक्स मिलान का उपयोग कर सकते है .rb:
And the "Bacon" checkbox should be checked
हालांकि, आपको लगता है कि इसी चेकबॉक्स इनपुट क्षेत्र की आईडी से मेल खाता अपने चेकबॉक्स पर कोई लेबल की आवश्यकता होगी। रेल में f.label सहायक पहले तर्क में आईडी के रूप में उपयोग करने के लिए एक स्ट्रिंग लेता है। ,
f.label "lunch_#{food_name}, food_name
f.radio_button :lunch, food_name
किसी भी मामले में देखने के लिए आप HTML सही मिल गया है कि इस निर्देश का उपयोग करें:: आप एक स्ट्रिंग फ़ील्ड नाम और चेकबॉक्स नाम भी शामिल है कि निर्माण करने के लिए हो सकता है
Then show me the page
And the "Obvious choice" checkbox should be checked
हालांकि यह एक रेडियो बटन हो सकता है, लेकिन कोड काम करेगा। यह सिर्फ उस पाठ के साथ लेबल किए गए फ़ील्ड की जांच कर रहा है।
बस रेडियो बटन करने के लिए एक web_step चेकबॉक्स बदल
web_steps.rb को
Then /^the "([^"]*)" radio_button(?: within "([^"]*)")? should be checked$/ do |label, selector|
with_scope(selector) do
field_checked = find_field(label)['checked']
if field_checked.respond_to? :should
field_checked.should be_true
else
assert field_checked
end
end
end
निम्नलिखित कदम जोड़े और तुम जाँच करने के लिए दिए गए रेडियो बटन को चेक किया गया है कि क्या निम्नलिखित या लिख नहीं सकता
And the "Bacon" radio_button within "div.radio_container" should be checked
लिपटा जेस्पर Ronn-जेन्सेन उसके समारोह + जोड़े गए नाम जो रेल द्वारा किया जाता है:
Then /^I should see that "([^"]*)" is checked from "([^"]*)"$/ do |value, name|
page.should have_selector "input[type='radio'][checked='checked'][value='#{value}'][name='#{name}']"
end
find_field("radio_button_name").should be_checked
या नई वाक्य रचना में:
expect(find_field("radio_button_name")).to be_checked
इस विधि काम नहीं करता लगता है। मैं Capybara 2.4.1 का उपयोग कर रहा हूँ। @evedovelli द्वारा सुझाए गए 'find_field' विधि ने चाल की है। –
मैं सुझाव देना चाहूंगा कि "चाहिए be_checked" लेकिन इसके बजाय: उम्मीद करें (find_field ("my_boxt"))। Be_checked – Tommyixi