如何编写一个检查div为空的水豚匹配器?

时间:2012-10-22 14:29:47

标签: ruby-on-rails capybara

我正在查看capybara matchers文档:http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Matchers

我似乎无法检查div是否为空。即我想验证是否存在类似

的内容
<div class="test"></div>

我考虑过assert_no_selector,但我不认为div中的文字节点会出现。 has_no_content似乎没有效果。

8 个答案:

答案 0 :(得分:3)

您可以使用find("#test").text

访问div内容

答案 1 :(得分:0)

以下内容适用于test class

assert_selector('div.test', text: '')

如果您正在寻找test id ,请使用此功能:

assert_selector('div#test', text: '')

答案 2 :(得分:0)

像assert_selector(&#39; div.test&#39;,text:/ \ A \ Z /)这样的东西应该做你想要的。将正则表达式传递给:text选项允许您对元素的内容进行全文匹配。

答案 3 :(得分:0)

我使用CSS :empty选择器:

expect(page).to have_selector('#my_element:empty')

答案 4 :(得分:0)

expect(page).to have_selector(:xpath, "//div[contains(@class, 'test') and normalize-space(string(.)) = '']")

答案 5 :(得分:0)

expect(page).to have_css('.test', exact_text: '')

将为您服务

答案 6 :(得分:-1)

你可以试试这个:

assert_selector('div', class: 'test', text: '')

答案 7 :(得分:-1)

此外:

page.find('.test').has_content?('')

expect(page.find('.test')).to have_content('')