2013-08-29 8 views
31

मैं class_name द्वारा खोज करना चाहता था और सभी तत्वों के बीच अंतिम तत्व लौटाता था।कैपिबरा में अंतिम मिलान तत्व कैसे ढूंढें?

jQuery में, हम नीचे की तरह कुछ लिख सकते हैं, लेकिन यह है कि आप webkit ड्राइवर आप की तरह कुछ लिख सकते हैं प्रयोग कर रहे हैं capybara

find(".delete:last") 

में काम करने लगता है नहीं है - में

find(".delete:last-child") 

capybara, आप नीचे उपयोग कर अंतिम तत्व प्राप्त कर सकते हैं -

all(:css, ".delete").last 

क्या थर्म है ई ऊपर के लिए कोई विकल्प?

+3

कौन सा ड्राइवर कार्य करें:

wait_for_ajax all('.selector').last 

इस के साथ rspec/capybara को जोड़ा गया तुम इस्तेमाल? '.delete: अंतिम-बच्चे 'सेलेनियम –

+0

के साथ काम करना चाहिए असल में मैं कैपिबरा (ड्राइवर विशिष्ट नहीं) –

+0

में अन्य विकल्प ढूंढना चाहता था यह ड्राइवर-विशिष्ट समाधान नहीं है। यह उन सभी ड्राइवरों में काम करना चाहिए जो उचित रूप से सीएसएस चयनकर्ताओं का समर्थन करते हैं। –

उत्तर

43

मैं एक ही समस्या थी और Capybara में इस पद्धति का उपयोग 2,4

all('.delete').last 
+0

धन्यवाद आदमी। एहसास नहीं हुआ कि 'सब' था। यदि कोई सोच रहा है कि यह एक मुद्दा क्यों है, तो 'ढूंढें' मिलान नोड (अच्छा) देता है या एक से अधिक मैच (खराब) होने पर अपवाद फेंकता है। तो छद्म चयनकर्ता काम नहीं करते हैं। भविष्य में पाठकों के लिए – IAmNaN

+5

एफवाईआई: ध्यान रखें कि 'ढूंढने 'के विपरीत' सभी 'किसी भी तत्व की प्रतीक्षा नहीं करेंगे; इसका अनुमान लगाने का कोई तरीका नहीं है कि कितने होना चाहिए। यह सुनिश्चित करना एक अच्छा विचार है कि आपने यह सत्यापित कर लिया है कि पृष्ठ पर किसी भी एसिंक्रोनस गतिविधि का उपयोग करने से पहले पूरा हो गया है। – tgf

+5

यह 'भीतर' के साथ भी अच्छी तरह से काम करता है, ताकि आप 'सभी के भीतर' ('li') कर सकें। अंतिम {fill_in "नाम", इसके साथ: "मान"} ' – hoffmanc

0

@Sharagoz पर भवन जवाब और सभी (खोज के विपरीत) के बारे में @ TGF की टिप्पणी async समाप्त करने के लिए के लिए इंतजार नहीं, तो इस संयोजन लगता है समाप्त हो गया मेरे लिए काम करने के लिए:

module RspecFeatureHelpers 
    def wait_for_ajax 
    Timeout.timeout(Capybara.default_max_wait_time) do 
     loop do 
     active = page.evaluate_script('jQuery.active') 
     break if active == 0 
     end 
    end 
    end 
end 
संबंधित मुद्दे