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> 使用文本 abcdef[=18= 创建谓词 <p> ]如下:

//div//p[contains(.,'date')] [//preceding-sibling::h6[contains(.,'abc')] or //preceding-sibling::h6[contains(.,'def')]]