我有两个可能的div。
<div class='a b'></div>
和
<div class='c d'></div>
有没有办法检查div元素是否有2个类a和b?
我使用Ruby,Capybara和XPath来选择元素,但如果可以解决问题,则css很好。
答案 0 :(得分:7)
这个css选择器应该在capybara中运行:
page.has_css?('div.a.b')
将匹配
<div class="a b">
但不是<div class="a">
答案 1 :(得分:5)
你可以这样做:
page.should have_css('div.a.b')
如果你不使用rspec,就是这样:
page.has_css?('div.a.b')
答案 2 :(得分:2)
XPath解决方案:
使用强>:
div[contains(concat(' ', @class, ' '), ' a ')
and
contains(concat(' ', @class, ' '), ' b ')
]
这将选择上下文节点的任何div
子节点,其class
属性包含类"a"
和"b"
。
如果要求所有选定class
的{{1}}属性完全(仅)包含这两个类而不包含其他类,请使用:
div