Ruby 如何在capybara中获取隐藏元素值?

Ruby 如何在capybara中获取隐藏元素值?,ruby,capybara,Ruby,Capybara,我需要得到一个隐藏元素的值 我尝试了以下代码: page.find(:xpath, "//span[@id='sample']").text 它返回零。从Capybara 2.1您可以将:all传递到text并使用find(“#sample”)。text(:all),而不考虑驱动程序 您还可以使用匹配器的:text选项(如果:visible为false,则匹配器将在内部将:all传递到text): page.应该有_css(“#示例”,可见:false,文本:“预期文本”) 在旧版的Cap

我需要得到一个隐藏元素的值

我尝试了以下代码:

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

它返回零。

从Capybara 2.1您可以将
:all
传递到
text
并使用
find(“#sample”)。text(:all)
,而不考虑驱动程序

您还可以使用匹配器的
:text
选项(如果
:visible
false
,则匹配器将在内部将
:all
传递到
text
):

page.应该有_css(“#示例”,可见:false,文本:“预期文本”)

在旧版的Capybara 2.0.x
text
中,没有这样的选项,只返回可见的文本

要返回可在中使用的可见和不可见文本,请执行以下操作:

  • 硒:
page.evaluate_脚本(“document.getElementById('sample').textContent”)
  • 机架测试:
find('#sample').native.text

您只需找到隐藏元素并获取其值即可

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

这么简单;)

请显示页面的html。@JustinKo确切地知道整个html不是necessary@AndreyBotalov,我只是想确认我们是在看一个不可见的范围,还是一个类型为“hidden”的输入元素。以前在其他问题上对此有过混淆。@Dean,我认为它应该有效。我只是假设OP想要的是文本,而不是值。