2009-08-10 11 views
15

मैं रेल पर ककड़ी के साथ एक जेएस पुष्टिकरण संवाद का परीक्षण करने की कोशिश कर रहा हूं। मेरे पास एक खिड़की है। अगर आप पेज से दूर नेविगेट करने का प्रयास करते हैं तो मुझे एक पुष्टिकरण संवाद के साथ संकेत मिलेगा, लेकिन मुझे नहीं पता कि इसका परीक्षण कैसे किया जाए, किसी को भी यह पता चल जाएगा कि यह कैसे किया जा सकता है?ककड़ी + परीक्षण जेएस अलर्ट

उत्तर

6

आप अलर्ट/पुष्टि कब्जा करने के लिए उपयोग कर सकते हैं सेलेनियम के विभिन्न कार्यों हैं वे webrat सेलेनियम कार्यान्वयन के साथ सीधे उपलब्ध नहीं हैं, लेकिन जब का उपयोग कर webrat के config.mode = :selenium वे इस प्रकार के रूप में इस्तेमाल किया जा सकता है:।

Then /^I should see a JS alert$/ do 
    selenium.is_alert_present.should be_true 
end 

# or 

Then /^I should see a "Are you sure?" JS confirm dialog$/ do 
    selenium.get_alert.should eql("Are you sure?") 
end 

# you can also click the OK/Cancel buttons on confirm boxes with 

selenium.chooseOkOnNextConfirmation(); 
#and 
selenium.chooseCancelOnNextConfirmation(); 

शायद सबसे बड़े परीक्षण नहीं हैं, लेकिन आपको एक विचार देता है। आंतरिक रूप से सेलेनियम जेएस के अलर्ट() और पुष्टि() कार्यों को ओवरराइड करता है ताकि यह इस जानकारी को कैप्चर कर सके।

आप http://selenium-client.rubyforge.org/classes/Selenium/Client/Idiomatic.html

में selenium faq पर या अपने मणि सर्वर

+0

यदि आप 'selenium.chooseOkOnNextConfirmation()' का उपयोग नहीं करना चाहते हैं, तो आप 'selenium.is_alert_present' को कॉल करने के बाद अलर्ट का उपभोग करने के लिए 'selenium.get_alert' का उपयोग कर सकते हैं। यदि आप इन चीजों में से कोई भी नहीं करते हैं, तो आपका अगला सेलेनियम स्टेटमेंट लंबित अलर्ट के कारण विफल हो जाएगा। – Loktar

0

आप इसका परीक्षण करने के लिए कब्रम्बर के साथ वेब्रैट या सेलेनियम का उपयोग कर सकते हैं।

मेरा अनुमान है कि आप नकली ब्राउज़र या स्वचालित ब्राउज़र परीक्षण चाहते हैं,

आप इस तरह के मामलों में ककड़ी के साथ Webrat या Webrat :: सेलेनियम या बस सेलेनियम का उपयोग कर सकते हैं।

मैंने पहले सेलेनियम और ककड़ी का उपयोग करके इसका परीक्षण किया है, लेकिन कोड नहीं मिल रहा है, अगर मैं करता हूं तो पोस्ट को संपादित कर दूंगा।

HTH

0

मैं एक पृष्ठ पर जावास्क्रिप्ट व्यवहार के परीक्षण के लिए screw-unit का उपयोग कर की सिफारिश करेंगे। आप प्रासंगिकता की नीली-रिज प्लगइन पर भी एक नज़र डाल सकते हैं जिसमें स्क्रू-यूनिट शामिल है और कमांड लाइन और ब्राउज़र जेएस परीक्षण में समर्थन जोड़ता है। आप इसे प्रासंगिकता/नीली-रिज के तहत जिथब पर पा सकते हैं। (मैं यह ककड़ी परीक्षण ड्राइव करने के लिए पेंच इकाई और/या नीली रिज उपयोग करने के लिए एक दिलचस्प व्यायाम होगा एक से अधिक लिंक :(

पोस्ट करने के लिए अभी तक प्रतिनिधि की जरूरत नहीं है, और शायद यह है कि मुश्किल नहीं खींचने के लिए । बंद

1

पर विधि परिभाषाएं देखें अधिक डॉक्स पा सकते हैं आप उन्हें अपने ककड़ी कदम परिभाषाओं में सेलेनियम सहायक ऑब्जेक्ट के साथ आह्वान कर सकते हैं - जैसे,

Then /^I should see a JS confirm dialog saying "([^\"]*)"$/ do |statement|  
    selenium.confirmation.should eql(statement)        
end 
0

This gist रेल 2 और 3 किसी भी Capybara ड्राइवर के साथ में एक जे एस पुष्टि संवाद का परीक्षण करने के लिए कदम है, एक चेतावनी बॉक्स के लिए अनुकूल करने के लिए आसान होना चाहिए।

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