2013-01-21 8 views
7

का उपयोग करते समय असफल हो जाते हैं, मैं एक jquery UI स्वत: पूर्ण परीक्षण का परीक्षण करने की कोशिश कर रहा हूं, मुझे सेलेनियम ड्राइवर का उपयोग करके परीक्षण पास हो गए हैं। मैं कुछ हेडलेस परीक्षण के लिए पोल्टरगेस्ट पर स्विच करना चाहता हूं, लेकिन अब मेरे परीक्षण अब विफल हो रहे हैं।@ जावास्क्रिप्ट ककड़ी परीक्षण सेलेनियम ड्राइवर का उपयोग करके पास हो जाते हैं लेकिन poltergiest

यह कुछ कारण यह है कि मैं अभी तक यह पता लगाने में सफल रहे हैं के लिए स्वत: पूर्ण विकल्प का चयन नहीं लगता

चरण

When /^select contract$/ do 
    VCR.use_cassette("contract") do 
    selector = 
     '.ui-menu-item a:contains("John Smith (123456)")' 
    within("div#review") do 
     fill_in("contract", with: "john") 
    end 
    sleep 2 
    page.execute_script "$('#{selector}').trigger(\"mouseenter\").click();" 

    within("div#myPerformaceReview") do 
     find_field("contract").value.should == 
     "John Smith (123456)" 
    end 
    end 
end 

परीक्षण बिना किसी परिवर्तन के सेलेनियम ड्राइवर का उपयोग कर गुजरता कदम के लिए।

इस पर कोई सलाह है कि मैं इसे कैसे डिबग कर सकता हूं?

संस्करण

  • सेलेनियम-webdriver (2.27.2)
  • poltergeist (1.0.2)
  • ककड़ी (1.2.1)
  • ककड़ी-रेल (1.0.6)
  • capybara (1.1.4)
  • phantomjs 1.8.1
+0

जो पर पंक्ति करता है:

module FormHelper def fill_in_autocomplete(selector, value) page.execute_script %Q{$('#{selector}').focus().val('#{value}').keydown()} end def choose_autocomplete(text) find('ul.ui-autocomplete').should have_content(text) page.execute_script("$('.ui-menu-item:contains(\"#{text}\")').find('a').trigger('mouseenter').click()") end end 

एक ही पृष्ठ पर इस मिले यह परीक्षण असफल रहा? –

+0

जब मैं जोर देता हूं कि फ़ील्ड को स्वत: पूर्ण से टेक्स्ट रखना चाहिए: find_field ("अनुबंध")। Value.should == "जॉन स्मिथ (123456)"। पेज.execute_script सही ढंग से आग लगती प्रतीत नहीं होती है। – Martinffx

उत्तर

8

मैंने इसे समझने में कामयाब रहा है, ऐसा लगता है कि कैपिबरा-पोल्टरगेस्ट ड्राइवर किसी भी घटना को ट्रिगर नहीं करता है जो jquery-ui ड्रॉपडाउन सूची को प्रदर्शित करने के लिए उपयोग करता है। समर्थन

module FormHelper 
    def fill_in_autocomplete(selector, value) 
    page.execute_script %Q{$('#{selector}').val('#{value}').keydown()} 
    end 

    def choose_autocomplete(text) 
    find('ul.ui-autocomplete').should have_content(text) 
    page.execute_script("$('.ui-menu-item:contains(\"#{text}\")').find('a').trigger('mouseenter').click()") 
    end 
end 
World(FormHelper) 

https://github.com/thoughtbot/capybara-webkit/issues/50

मैं सुविधाओं में एक फार्म के सहायक बनाया/मैं तो उन विधि का इस्तेमाल किया के रूप में भरने और इच्छित विकल्प का चयन करने के लिए:

मैं इस सवाल का जवाब यहाँ पाया।

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