能否通过XPath匹配部分class值来定位元素?
如何用XPath通过部分class名称定位元素
当然可以用XPath通过部分class名称定位元素,但你写的p[@class[text(),[contains(,"fBmSdW")]]]语法是错误的,这里给你几种可行的正确写法:
直接用contains匹配class属性
这种写法最简单,适合快速定位包含指定class值的元素,但要注意如果目标class是其他class的子字符串,可能会出现误匹配(比如要找fBmSdW,但存在fBmSdW-extra的元素也会被选中):p[contains(@class, 'fBmSdW')]结合空格实现精准匹配
给class属性值前后拼接空格,再匹配包含目标class的内容,能确保匹配的是独立的class项,避免误匹配:p[contains(concat(' ', @class, ' '), ' fBmSdW ')]用XPath 2.0的tokenize函数(环境支持时可用)
如果你的XPath解析器支持2.0版本,可以把class属性按空格分割成列表,再判断是否包含目标class:p[tokenize(@class, '\s+') = 'fBmSdW']
内容的提问来源于stack exchange,提问作者555Russich
相关产品推荐
相关产品推荐

