2010-03-10 12 views
42

मैंने ककड़ी + वेब्रैट से ककड़ी + कैपिबरा से माइग्रेट करना शुरू किया। अब "मुझे देखना चाहिए" का व्यवहार कुछ अलग दिखता है। इनमें से अधिकांश अब विफल हो गए हैं, हालांकि मैंने पृष्ठ पर कुछ भी नहीं बदला है। मैंने स्निपेट को प्रतिस्थापित किया जो प्रत्येक पृष्ठ पर मौजूद कुछ सामानों के साथ पाया जाना चाहिए और कुछ पाठ के लिए यह काम करता है और अन्य पाठ के लिए यह नहीं करता है। मुझे पृष्ठ की सामग्री में क्या पाया गया है और क्या नहीं है में कोई पैटर्न नहीं मिल रहा है। वेब्रेट मुद्रित करता था कि पेज सामग्री क्या है, यह पाया गया है, अगर इसमें आवश्यक वाक्यांश नहीं था। क्या कैपिबारा दिखाने के लिए वैसे भी है कि पेज से यह क्या पाठ प्राप्त हुआ जिसमें उसने पाठ खोजने की कोशिश की?मैं कैसे देख सकता हूं कि एक असफल ककड़ी चरण में कैपिबरा क्या पाया जाता है?

+63

किसी के नाम से चलने वाली तकनीकों से पूरी तरह से अपरिचित होने के नाते, यह मेरा पसंदीदा स्टैक ओवरफ़्लो प्रश्न शीर्षक है, कभी भी! – Oddthinking

+1

हाँ, यह कुछ चिड़ियाघर से संबंधित लगता है। – ajmurmann

+1

लॉल, गरीब कैपिबरा! –

उत्तर

29

इस कदम जोड़ने का प्रयास करें:

Then show me the page 
+0

बहुत बहुत धन्यवाद! इससे बहुत मदद मिली! – ajmurmann

+0

मुझे पता है कि यह बहुत पुराना है, लेकिन उस निर्देश को जोड़ने के बाद मुझे मणि 'लॉन्च' स्थापित करना पड़ा और उसने सामग्री को वास्तव में महान सामग्री के साथ लॉन्च किया। – rii

5

तुम भी इस्तेमाल कर सकते हैं जो सांत्वना के लिए HTML आउटपुट "तो फिर मुझे प्रतिक्रिया दिखाने के" क्या आप एक ब्राउज़र का उपयोग नहीं करना चाहते हैं।

+1

आदेश rails3 –

+6

'प्रिंट पेज के लिए ककड़ी के भीतर नहीं है।एचटीएमएल' (आपकी चरण परिभाषा में) Rails3 –

39

Then show me the page वेब्रैट/कैपिबरा के अंतर्निहित save_and_open_page विधि को कॉल करता है। स्टेक के साथ काम करते समय उपयोगी पाया।

21

यदि आप पेज खोलने पर ब्राउज़र खोलना चाहते हैं तो आप 'लॉन्च' मणि का उपयोग करते हैं। अपने मणि फाइल करने के लिए यह करें, और उसके बाद में/सुविधाओं/समर्थन सामग्री के साथ एक फ़ाइल बुलाया debugging.rb बनाएँ: आप अपने पृष्ठों में जावास्क्रिप्ट या अजाक्स उपयोग कर रहे हैं

After do |scenario| 
    save_and_open_page if scenario.failed? 
end 
+1

में काम करता है यह शानदार रूप से उपयोगी है, धन्यवाद। ऐसा लगता है कि इसे डिफ़ॉल्ट रूप से ककड़ी के साथ स्थापित किया जाना चाहिए। – dankohn

9

और देखने के लिए क्या हो रहा है चाहता हूँ , मैंने पाया है कि पोल्टरगेस्ट ड्राइवर आपको डोम में जाने और यह जानने के लिए बहुत अच्छा है कि क्या गलत हो रहा है।

यदि आप सेटअप रिमोट डिबगिंग विकल्प के साथ अपने Capybara चालक:

Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, inspector: true) 
end 

तब आप अपने चरणों में निम्न पंक्ति रख सकते हैं:

page.driver.debug 

कौन सा के साथ एक नया क्रोमियम ब्राउज़र को आग वर्तमान डीओएम राज्य सेट, आपको कंसोल पर जाने देता है। (लिनक्स के मेरे संस्करण पर, मुझे क्रोमियम क्रोमियम-क्रोमियम को सिमलिंक करना पड़ा लेकिन यह अन्यथा ठीक काम करता था)।

स्रोत जानकारी: http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/

7

Then show me the responseककड़ी 1.1 के साथ मेरे लिए काम नहीं किया। मैं capybara के आदेश का उपयोग कर एक कदम लिखने के लिए उपयोगी पाया:

print page.html

यह डोम

0

की वर्तमान स्थिति आउटपुट तुम हमेशा यह एक स्क्रीन शॉट ले सकता था जब कुछ विफल रहा है। मैं इस तरह से असफल सुविधाओं की एक बहुत सी डीबग डीबग।

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