2013-02-25 21 views
8

Gizli bir öğenin değerini almam gerekiyor.Kapibara'da gizli öğe değeri nasıl alınır?

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

nil verir:

Aşağıdaki kod çalıştı.

+0

sayfanın html gösterin. –

+0

@JustinKo Tüm HTML'yi kesinlikle bilmeniz gerekmiyor –

+0

@AndreyBotalov, Sadece görünmeyen bir açıklık veya 'gizli' türünde bir giriş elemanına bakıp bakmadığımızı onaylamak istedim. Daha önce bu konuda başka sorularda karışıklıklar oldu. –

cevap

20

Capybara 2.1'den, :all'u text'a geçirebilir ve sürücüye bakmaksızın find('#sample').text(:all)'u kullanabilirsiniz.

Ayrıca matchers ait :text seçeneğini kullanabilirsiniz (dahili olarak text eğer :visible için :all geçecek false ise): eski Capybara 2.0.x text yılında


page.should have_css('#sample', visible: false, text: 'expected text') 
böyle bir seçenek yoktu ve sadece görünen metin döndü.

görünür ve hem görünür metin kullanabileceğiniz değil dönmek için:

  • selenyum:
page.evaluate_script("document.getElementById('sample').textContent") 
  • rack_test:
find('#sample').native.text 
+0

Dokümanlar: http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders –

+0

Bu yeni Capybara – Dean

+0

@ Dean için çalışmıyor. Çalışması gerektiğini düşünüyorum. Sadece OP'nin metin almak istediğini, değer olmadığını düşündüm. –

15

Sadece can bulmak Gizli öğe ve değeri olsun.

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

Yani basit

;)

İlgili konular