Capybara Rspec Matcher断言tbody是空的

时间:2018-04-09 14:08:28

标签: ruby cucumber capybara

我有一个网页,其中有一个包含数据的表格元素。您可以搜索/过滤此数据。当搜索无效,即没有记录符合您的条件时,该表将呈现空白。

HTML将如下所示:

<tbody></tbody>

我正在编写一个测试来断言tbody元素确实是空的或空白的。我正在使用expect(find('tbody')).to have_text ''

我对此不太满意,因为当有任何空格的文本时它也会通过。

有没有更好的方法来断言?

编辑:

我成功运行了这个&gt;

expect(find('table > tbody', visible: false)).not_to have_css('td')

我仍然愿意接受任何更好的解决方案

2 个答案:

答案 0 :(得分:1)

您可以通过验证其中没有子女

来验证tbody是否为空
expect(find('tbody')).to have_no_css('*')

答案 1 :(得分:1)

Capybara中有一个has_no_content匹配器。

expect(find('tbody').has_no_content?).to be true

expect(find('tbody')).to have_no_content 

https://devhints.io/capybara