Capybara Rspec 匹配器断言 tbody 为空

Capybara Rspec Matcher assert tbody is empty

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

HTML 将如下所示:

<tbody></tbody>

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

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

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

编辑:

我 运行 成功了 >

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

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

您可以通过验证 tbody 没有子项

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

Capybara 中有一个 has_no_content 匹配器。

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

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

https://devhints.io/capybara