为什么我的xpath与不需要的元素匹配?
我正在尝试定位类为“foo”的元素 这是它找到的代码:为什么我的xpath与不需要的元素匹配?,xpath,Xpath,我正在尝试定位类为“foo”的元素 这是它找到的代码: <div id="foo1"> <div id = "foo2"> <div class = "foo-err"> </div> </div> </div> 路径正在返回div class=“foo err”元素contains()是子字符串匹配。它的基本意思是“如果'foo'在class属性中的任何地方都,则匹配元素” 如果您想要精确匹配,请尝试 [@class
<div id="foo1">
<div id = "foo2">
<div class = "foo-err">
</div>
</div>
</div>
路径正在返回div class=“foo err”元素contains()
是子字符串匹配。它的基本意思是“如果'foo'在class属性中的任何地方都,则匹配元素”
如果您想要精确匹配,请尝试
[@class='foo']
contains()
是子字符串匹配。它的基本意思是“如果'foo'在class属性中的任何地方都,则匹配元素”
如果您想要精确匹配,请尝试
[@class='foo']
如果需要在类列表中匹配
foo
,而不是foo err
,则需要一个更复杂的构造:[包含(concat(“”,@class,,'foo')]
,它将在完整的类字符串中查找由空格包围的foo,该字符串也由空格包围。因此'foobaz bar'
->'foobar'
->包含'foobaz'
,但'foobaz bar'
->不包含'foo'
如果需要在类列表中匹配foo
,而不是foo err
,则需要更复杂的构造:'contains(concat>)('',@class','','foo')]
,它将在同样由空格包围的完整类字符串中查找由空格包围的foo。因此'foo-bar'
->'foo-bar'
->包含'foo'
,但是'foobaz-bar'
->不包含'foo'
xpath会是:/div/div/div/div吗[@class='foo']这个故事的寓意是:不要假设你可以仅从函数名猜出函数的作用。@MichaelKay实际上,这个故事的寓意是“函数名可能准确地描述了它的作用”。:-)是的,一旦发现它的作用,我就认为啊,当然……包含xpath,那么它应该是:/div/div/div[@class='foo']这个故事的寓意是:不要假设你可以仅从函数名猜出函数的作用。@MichaelKay实际上,这个故事的寓意是“函数名可能准确地描述了它的作用。”:-)是的,一旦发现它的作用,我想啊,当然……包含了
[@class='foo']