2011-08-18 18 views
7

काम नहीं करता है मैं डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ Capybara 1.0.0 का उपयोग कर रहा हूं।Capybara click_link कभी-कभी

click_link "पहले से मौजूद पाठ" # --sometimes-- काम नहीं करता। अजीब।

find_link "पहले से मौजूद पाठ" # हमेशा काम करता है

यह एक समय समस्या हो सकती है; या शायद नहीं क्योंकि find_link शानदार ढंग से ठीक काम करता है।

मैं save_and_open_page के माध्यम से उत्पादित आउटपुट फ़ाइल देख लिया है, यह भी ठीक है। इसके अलावा, मैंने प्रतीक्षा समय आदि बढ़ा दिया है, लेकिन न तो मदद मिली।

इससे पहले कि मैं कैपिबरा का स्रोत पूरी तरह से प्राप्त कर सकूं। आपको क्या लगता है कि गलत हो गया है?

सादर

+0

prolly समस्या जिस तरह से आप xpath या सीएसएस चयनकर्ताओं के साथ तत्वों का पता लगाने में है:

एक सामान्य सुझाव दिए गए हैं, मैं की तरह सीधे ढूँढ़ने उपयोग करने के लिए, की सिफारिश करेंगे? –

उत्तर

0

जब भी मैं अपने परीक्षण पहले चीजें मैं जाँच में से एक के साथ रुक-रुक कर हो रही समस्याओं अनुक्रम कि वे किस तरह आप Rspec सेटअप पर निर्भर करता है में।

चलाए जा रहे हैं है, यह शायद है प्रत्येक बार जब आप सूट चलाते हैं तो चश्मा चलाने के आदेश को यादृच्छिक बनाना। इसका मतलब है कि कभी-कभी सबकुछ गुजरता है और दूसरी बार नहीं।

Rspec उत्पादन एक बीज मूल्य आप के लिए उपयोग कर सकते हैं एक ही क्रम में परीक्षण डीबगिंग उद्देश्यों के लिए फिर से चलेंगे।

0

इस वाक्य click_link('', href: some_path) उपयोग करने के लिए प्रयास करें।

0

लिंक एक और तत्व (पॉपअप विंडो की तरह) के साथ ovelapped हो सकता है, या उसके बाद पृष्ठ लोड होता है कुछ समय के बाद अजाक्स द्वारा सक्रिय है। यह दृढ़ता से निर्भर करता है कि आप किस प्रकार के पेज के साथ काम करते हैं।

# Note :visible => true, it will throw an error if element is overlapped 
    find(:xpath, "//a[.='some existing text']", visible: true).click 

    # Another approach 
    wait_until(15) { first(:xpath, "//a..", visible: true) }.click 
संबंधित मुद्दे