0
我正在测试搜索页面,其中用户按值过滤记录。长话短说 - 我需要检查节点中没有任何文本的元素的数量(我正在重置筛选器并检查没有任何文本的元素是否出现)。如何选择没有任何带水豚的文字元素?
如何选择所有没有任何文字的元素?
我用这一点,但它无论如何返回的所有元素:
expect(page.all('table.index tbody td.status', text: '').count).to be == 0
我正在测试搜索页面,其中用户按值过滤记录。长话短说 - 我需要检查节点中没有任何文本的元素的数量(我正在重置筛选器并检查没有任何文本的元素是否出现)。如何选择没有任何带水豚的文字元素?
如何选择所有没有任何文字的元素?
我用这一点,但它无论如何返回的所有元素:
expect(page.all('table.index tbody td.status', text: '').count).to be == 0
的:文本选项需要一个字符串或正则表达式。当它是一个字符串时,它会进行子串匹配,因此''
将匹配所有元素。你想要的是
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等待/重试行为的期望
你试过'page.all('table.index tbody td.status')。select {| field | field.val ==''}' –