0

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('

4

1 に答える 1

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 セレクター with multiple :not fails

于 2012-05-15T17:12:08.427 に答える