如何使用Rspec检查某些CSS类的缺失?

时间:2012-05-15 13:32:23

标签: css rspec css-selectors nokogiri

如何使用Rspec的have_selector来验证DOM元素没有某些CSS类?

我正在尝试使用CSS语法,但显然Nokogiri不支持:not()选择器。

例如:

it "should not add any class to other inputs" do
  @buffer.output.should have_selector(
    'form input#monster_battle_cry:not(.integer, .decimal, .date, .phone, .zip)'
  )
end

此操作因#Nokogiri::CSS::SyntaxError: # unexpected ':not('

而失败

1 个答案:

答案 0 :(得分:2)

这样的事情很丑陋,但应该有效:

it "should not add any class to other inputs" do
  @buffer.output.should have_xpath(
    "//form//input[@id='monster_battle_cry'][not(contains(@class, 'integer'))]"
  )
end

与其他课程重复[not(contains(@class, 'integer'))]

修改糟糕,CSS也应该有效,只有这样::not(.integer):not(.decimal)...

再次修改否则没有,并且有一张打开的门票:CSS selector with multiple :not fails