У меня есть HTML файл, который выглядит следующим образом:
<div id="products">
<div class="product">
<span class="productheader">Product 1</span>
<input type="checkbox" />
</div>
<div class="product">
<span class="productheader">Product 2</span>
<div class="selected_value and_other value plus one value">
<input type="checkbox" checked="checked" />
</div>
</div>
<div class="product">
<span class="productheader">Product 3</span>
<span class="hidden">
<div class="selected_value and_other value">
<input type="checkbox" checked="checked" />
</div>
</span>
</div>
</div>
Я хотел бы иметь значение из header где:
- вход «проверен» -> класс div от потомка содержит «selected_value»
- , но не скрыт -> выбранный не является частью диапазона с классом «hidden»
так, только второе productheader значение (Product 2) должно быть результатом.
Как должен выглядеть правильный xpath?
Пробовал много вещи, но ничего не работает. Наиболее точно:
//div[contains(@class, 'product')]//*[descendant::div[contains(@class ,"selected_value")]]
Проблема в том, что это не означает, что он не может быть скрыт!