#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')]]