2013-02-25 12 views
8

मुझे एक छिपे हुए तत्व का मूल्य प्राप्त करने की आवश्यकता है।कैपिबरा में छुपा तत्व मूल्य कैसे प्राप्त करें?

page.find(:xpath, "//span[@id='sample']").text 

यह नहीं के बराबर रिटर्न:

मैं निम्नलिखित कोड की कोशिश की।

+0

पेज के HTML दिखाने करें। –

+0

@JustinKo Acutally संपूर्ण HTML को जानना आवश्यक नहीं है –

+0

@AndreyBotalov, मैं सिर्फ यह पुष्टि करना चाहता था कि हम एक ऐसे क्षेत्र को देख रहे हैं जो दिखाई नहीं दे रहा है या 'छुपा' प्रकार का इनपुट तत्व नहीं है। अन्य प्रश्नों में इससे पहले इस पर भ्रम हो रहा है। –

उत्तर

20

कैपिबरा 2.1 से आप :all से text पर जा सकते हैं और ड्राइवर के बावजूद find('#sample').text(:all) का उपयोग कर सकते हैं।

इसके अलावा, आप matchers की :text विकल्प का उपयोग कर सकते हैं (वे आंतरिक रूप से text अगर :visible करने के लिए :all पारित करेंगे false है):

page.should have_css('#sample', visible: false, text: 'expected text') 

बड़े Capybara 2.0.x text में इस तरह के विकल्प नहीं था और केवल दृश्यमान पाठ लौटा दिया।

वापस जाने के लिए दोनों दिखाई और नहीं दिखाई दे रहे पाठ आप में उपयोग कर सकते हैं:

  • सेलेनियम:
page.evaluate_script("document.getElementById('sample').textContent") 
  • rack_test:
find('#sample').native.text 
+0

डॉक्स: http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders –

+0

यह नवीनतम कैपिबरा – Dean

+0

@ डीन के लिए काम नहीं कर रहा है, मुझे लगता है कि इसे काम करना चाहिए। मैंने अभी माना है कि ओपी पाठ प्राप्त करना चाहता है, मूल्य नहीं। –

15

आप बस कर सकते हैं खोज छुपा तत्व और इसका मूल्य प्राप्त करें।

find('#sample', visible: false).value 

तो सरल;)

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