2016-09-10 158 views
0

我正在测试搜索页面,其中用户按值过滤记录。长话短说 - 我需要检查节点中没有任何文本的元素的数量(我正在重置筛选器并检查没有任何文本的元素是否出现)。如何选择没有任何带水豚的文字元素?

如何选择所有没有任何文字的元素?

我用这一点,但它无论如何返回的所有元素:

expect(page.all('table.index tbody td.status', text: '').count).to be == 0 
+1

你试过'page.all('table.index tbody td.status')。select {| field | field.val ==''}' –

回答

1

的:文本选项需要一个字符串或正则表达式。当它是一个字符串时,它会进行子串匹配,因此''将匹配所有元素。你想要的是

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%,你最好使用提供的匹配(have_css,have_selector等),而不是结果调用数all,因为你会得到Capybaras等待/重试行为的期望