0

我正在尝试使用“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" 元素

4

2 回答 2

5

contains()是子串匹配。它基本上是在说“如果'foo'类属性中的任何位置,则匹配元素”。

如果您想要完全匹配,请尝试

[@class='foo']
于 2013-07-09T20:43:23.373 回答
1

如果您需要foo在类列表中匹配而不是foo-err,则需要一个更复杂的构造:[contains(concat(' ', @class, ' '), ' foo ')],它将在完整的类字符串中查找被空格包围的 foo ,也被空格包围。因此'foo bar'-> ' foo bar '-> 包含' foo ',但'foobaz bar'-> ' foobaz bar '-> 不包含' foo '

于 2013-07-09T22:58:12.000 回答