我正在尝试在Capybara中获取具有类名的表头的文本值。我在Capybara中获得了node元素,但是当我使用text
属性时却无法获得该类的文本内容。如何在此处获取“水豚”节点元素的文本?
html.erb
<% @tests.each do |test| %>
<th class="test_name_header"><%= test.name %></th>
<% end %>
capybara_test.rb
all(:css, '.test_name_header', :visible => false).each do |el|
puts el.text
end
此代码不打印元素的文本。什么都没打印,但是当我在上述代码中puts el
时,它打印出节点元素。
答案 0 :(得分:1)
#text
-https://www.rubydoc.info/github/teamcapybara/capybara/Capybara/Node/Element#text-instance_method的文档-说明默认情况下,它仅显示可见文本。由于您在visible: false
调用中指定了all
,因此我假设这些标题实际上在页面上不可见。如果是这种情况,如文档中所述,您需要进行
el.text(:all)
获取不可见的文本。