我正在尝试使用“foo”类
找到元素<div id="foo1">
<div id = "foo2">
<div class = "foo">
</div>
</div>
</div>
这是我的xpath:
/div/div/div[contains(@class,'foo')]
这是它发现的代码:
<div id="foo1">
<div id = "foo2">
<div class = "foo-err">
</div>
</div>
</div>
路径返回div class =“foo-err”元素
答案 0 :(得分:5)
contains()
是子字符串匹配。它基本上是说“如果'foo'在class属性中 ANYWHERE ,则匹配元素”。
如果您想要完全匹配,请尝试
[@class='foo']
答案 1 :(得分:1)
如果您需要在类列表中匹配foo
而不是foo-err
,则需要一个更复杂的构造:[contains(concat(' ', @class, ' '), ' foo ')]
,它将查找foo中包含空格的foo全类字符串也被空格包围。因此'foo bar'
- &gt; ' foo bar '
- &gt;包含' foo '
,但'foobaz bar'
- &gt; ' foobaz bar '
- &gt;不包含' foo '
。