从Capybara节点元素获取文本

时间:2019-06-02 06:29:20

标签: ruby-on-rails-5 capybara

我正在尝试在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时,它打印出节点元素。

1 个答案:

答案 0 :(得分:1)

#text-https://www.rubydoc.info/github/teamcapybara/capybara/Capybara/Node/Element#text-instance_method的文档-说明默认情况下,它仅显示可见文本。由于您在visible: false调用中指定了all,因此我假设这些标题实际上在页面上不可见。如果是这种情况,如文档中所述,您需要进行

el.text(:all)

获取不可见的文本。