从 Capybara 节点元素获取文本

Get text from Capybara node element

我正在尝试在 Capybara 中使用 classname 获取 table header 的文本值。我在 Capybara 中获取了节点元素,但是当我使用 text 属性时,我无法获取 class 的文本内容。我怎样才能在这里得到 Capybara 节点元素的文本?

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 时,它会打印节点元素。

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

el.text(:all)

获取 non-visible 文本。