XPATH 使用 AND OR 组合
XPATH use AND OR combination
我得到以下 HTML 代码:
<div><h6>abc/h6><p>date</p></div>
我可以根据文本用selenium成功找到这个元素。现在的问题是 <h6>
可以包含不同的词,例如“def”或“ghi”。如何在以下 XPATH 中添加 OR?
只有 AND 这是有效的:
"//div/p[contains(text(),'date') and preceding-sibling::h6[contains(text(),'abc')]]"
现在用 AND & OR 都试过了没有成功
"//div/p[contains(text(),'date') and preceding-sibling::h6[contains(text(),'abc') or preceding-sibling::h6[contains(text(),'def')]]"
同样这也没有成功
"//div/p[contains(text(),'date') and preceding-sibling::h6[contains(text(),'abc' or 'def')]]"
在 h6
的谓词内部,测试它是否包含 'abc' or
包含 'def':
//div/p[contains(text(),'date')
and preceding-sibling::h6[contains(text(),'abc') or contains(text(),'def')]]
在 and
中使用 <h3>
使用文本 abc 或 def[=18= 创建谓词 <p>
]如下:
//div//p[contains(.,'date')] [//preceding-sibling::h6[contains(.,'abc')] or //preceding-sibling::h6[contains(.,'def')]]
我得到以下 HTML 代码:
<div><h6>abc/h6><p>date</p></div>
我可以根据文本用selenium成功找到这个元素。现在的问题是 <h6>
可以包含不同的词,例如“def”或“ghi”。如何在以下 XPATH 中添加 OR?
只有 AND 这是有效的:
"//div/p[contains(text(),'date') and preceding-sibling::h6[contains(text(),'abc')]]"
现在用 AND & OR 都试过了没有成功
"//div/p[contains(text(),'date') and preceding-sibling::h6[contains(text(),'abc') or preceding-sibling::h6[contains(text(),'def')]]"
同样这也没有成功
"//div/p[contains(text(),'date') and preceding-sibling::h6[contains(text(),'abc' or 'def')]]"
在 h6
的谓词内部,测试它是否包含 'abc' or
包含 'def':
//div/p[contains(text(),'date')
and preceding-sibling::h6[contains(text(),'abc') or contains(text(),'def')]]
在 and
中使用 <h3>
使用文本 abc 或 def[=18= 创建谓词 <p>
]如下:
//div//p[contains(.,'date')] [//preceding-sibling::h6[contains(.,'abc')] or //preceding-sibling::h6[contains(.,'def')]]