私は2つの可能なdivを持っています。
<div class='a b'></div>
と
<div class='c d'></div>
div要素に2つのクラスaとbがあるかどうかを確認する方法はありますか?
要素の選択にはRuby、Capybara、XPathを使用していますが、cssで問題が解決できれば問題ありません。
この css セレクターはカピバラで動作するはずです:
page.has_css?('div.a.b')
どちらが一致しますか
<div class="a b">
だがしかし<div class="a">
あなたはこれを行うことができます :
page.should have_css('div.a.b')
rspec を使用しない場合は、次のようになります。
page.has_css?('div.a.b')
XPath ソリューション:
使用:
div[contains(concat(' ', @class, ' '), ' a ')
and
contains(concat(' ', @class, ' '), ' b ')
]
これにより、属性にクラスとの両方が含まれるコンテキスト ノードの任意div
の子が選択されます。class
"a"
"b"
class
選択した任意の属性にdiv
これら 2 つのクラスだけが含まれ、他のクラスが含まれていないことが必要な場合は、次を使用します。
div[contains(concat(' ', @class, ' '), ' a ')
and
contains(concat(' ', @class, ' '), ' b ')
and
string-length(normalize-space(@class)) = 3
]