2つのdivがあります。要素に2つのクラスがあるかどうかをチェック
<div class='a b'></div>
と
<div class='c d'></div>
のdiv要素は2つのクラスAとBとを持っているかどうかを確認する方法はありますか?
私は要素を選択するためにRuby、Capybara、XPathを使用しますが、問題を解決できるのであればCSSは問題ありません。
2つのdivがあります。要素に2つのクラスがあるかどうかをチェック
<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">
あなたがこれを行うことができます:あなたはRSpecの使用していない場合は
page.should have_css('div.a.b')
を、それはこのです:
page.has_css?('div.a.b')
これはRSpecのを必要とし、それはないですか? –
はい。 RSpecが必要ない場合は 'page.has_css?( 'div.a.b')'を使うことができます。 – Dougui
XPathのソリューション:
使用:
div[contains(concat(' ', @class, ' '), ' a ')
and
contains(concat(' ', @class, ' '), ' b ')
]
これはclass
属性クラス"a"
と"b"
の両方が含まれているコンテキストノードのいずれかdiv
子を選択します。それが必要な場合は
は、任意の選択div
のclass
属性がを使用し、正確に(のみ)この2つのクラスとなし、他のクラスが含まれていること:
div[contains(concat(' ', @class, ' '), ' a ')
and
contains(concat(' ', @class, ' '), ' b ')
and
string-length(normalize-space(@class)) = 3
]
それは動作します。それはXPathで行うことができますか? –
はい、しかしその醜いです。 http://stackoverflow.com/questions/3881044/how-to-get-html-elements-with-multiple-css-classes – AJcodez