У меня есть html, который я ищу в тесте Selenium, где я хочу найти ребенка по его тексту , только если у родителя нет текста :
Вот HTML:
<ul>
<li>
<div>
"4"
<span>630</span>
</div>
</li>
<li>
<div>
<span>630</span>
</div>
</li>
<li>
<div>
"6"
<span>630</span>
</div>
</li>
</ul>
Выбор для текстовой строки '630' дает три результата, используя "//span[.='630 ']" или "// span [text () =' 630 '] ", но я хочу только этот средний с пустым родителем. Я перепробовал множество конструкций, которые не работают "//span[.='630' and parent::div[.='']]"
или "//span[text()='630' and parent::div[text='']]"
и даже "//div[text()='']/*[1] | //span[text()='630']"
, но все они дают либо 3 результата, либо ни одного.
Обратите внимание, что пока "//span[text()='630'] and .//div[contains(text(),'')]"
обнаруживает текст, возвращает true, и мне нужно, чтобы он возвратил элемент, чтобы я мог щелкнуть по нему.