我正在测试搜索页面,其中用户按值过滤记录。长话短说 - 我需要检查节点中没有任何文本的元素数量(我重新设置过滤器并检查没有任何文本的元素是否出现)。
如何选择没有任何文字的所有元素?
我正在使用它,但无论如何它都会返回所有元素:
expect(page.all('table.index tbody td.status', text: '').count).to be == 0
答案 0 :(得分:1)
:text选项采用字符串或正则表达式。当它是一个字符串时,它会进行子串匹配,因此''
将匹配所有元素。你想要的是
expect(page).to have_no_css('table.index tbody td.status', text: /^$/)
或
expect(page).to have_css('table.index tbody td.status', text: /^$/, count: 0)
99.9%的时间你最好使用提供的匹配器(has_css,have_selector等),而不是调用all
的结果,因为你会得到Capybaras等待/重试行为期待