检查元素是否有两个类
我有2个可能的div。
和
有没有办法检查div元素是否有2个类a和b?
我使用Ruby,Capybara和XPath来选择元素,但如果可以解决问题,则css很好。
这个css选择器应该在capybara中工作:
page.has_css?('div.a.b')
哪个会匹配
但不是
你可以这样做 :
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"
。
如果要求任何所选div
的class
属性完全(仅)包含这两个类而不包含其他类,请使用 :
div[contains(concat(' ', @class, ' '), ' a ') and contains(concat(' ', @class, ' '), ' b ') and string-length(normalize-space(@class)) = 3 ]