Potrzebuję uzyskać wartość ukrytego elementu.Jak uzyskać wartość ukrytego elementu w kapibarze?
Próbowałem następujący kod:
page.find(:xpath, "//span[@id='sample']").text
zwraca nil.
Potrzebuję uzyskać wartość ukrytego elementu.Jak uzyskać wartość ukrytego elementu w kapibarze?
Próbowałem następujący kod:
page.find(:xpath, "//span[@id='sample']").text
zwraca nil.
Od wersji Capybara 2.1 można przekazywać :all
do text
i używać find('#sample').text(:all)
niezależnie od sterownika.
Również można użyć :text
opcji dopasowujących (będą wewnętrznie przechodzą :all
do text
jeśli :visible
jest false
):
page.should have_css('#sample', visible: false, text: 'expected text')
w starszych Kapibara 2.0.x text
nie ma takiej opcji i zwrócił tylko widoczny tekst.
Aby powrócić zarówno widoczne i niewidoczne tekstu można użyć w:
page.evaluate_script("document.getElementById('sample').textContent")
find('#sample').native.text
Dokumenty: http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders –
To nie działa dla najnowszej Capybary – Dean
@Dean Myślę, że to powinno działać. Właśnie założyłem, że OP chce uzyskać tekst, a nie wartość. –
Można po prostu odnaleźć ukryty element i zdobądź jego wartość.
find('#sample', visible: false).value
Tak proste;)
Proszę pokazać HTML strony. –
@JustinKo Dokładne poznanie całego HTML nie jest konieczne –
@AndreyBotalov, chciałem tylko potwierdzić, czy patrzymy na rozpiętość, która nie jest widoczna, czy element wejściowy typu "ukryty". W innych kwestiach pojawiały się niejasności. –