Использование XPATH И ИЛИ комбинация

#html #selenium #selenium-webdriver #xpath #selenium-chromedriver

#HTML #селен #селен-веб-драйвер #xpath #селен-хромированный привод

Вопрос:

Я получил следующий HTML-код:

 lt;divgt;lt;h6gt;abc/h6gt;lt;pgt;datelt;/pgt;lt;/divgt;  

Я могу успешно найти этот элемент с помощью selenium на основе текста. Теперь проблема в том, что lt;h6gt; может содержать разные слова, такие как «def» ИЛИ «ghi». Как я могу добавить ИЛИ в следующий XPATH? Только с этим И это работает:

 "//div/p[contains(text(),'date') and preceding-sibling::h6[contains(text(),'abc')]]"  

Теперь с И amp; ИЛИ пытались безуспешно

 "//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')]]"  

Ответ №1:

Внутри предиката for h6 проверьте , содержит ли он «abc» or , содержит ли «def»:

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

Ответ №2:

Сделайте lt;pgt; предикат and с lt;h3gt; помощью текста abc или def следующим образом:

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