У меня мало строк данных, у них нет отслеживаемого идентификатора или класса, поэтому мне нужен дочерний / следующий тип XPath.Ниже приведен HTML-контент:
<tr class="v-formlayout-row v-formlayout-firstrow" xpath="1">
<td class="v-formlayout-captioncell">
<div class="v-caption v-caption-smalllabel v-caption-hide-indicator v-caption-hasdescription"><span id="gwt-uid-6138" for="gwt-uid-6139">Unit type</span></div>
</td>
<td class="v-formlayout-errorcell">
<div class="v-formlayout-error-indicator"></div>
</td>
<td class="v-formlayout-contentcell">
<div class="v-horizontallayout v-layout v-horizontal v-widget smalllabel v-horizontallayout-smalllabel hide-indicator v-horizontallayout-hide-indicator" id="gwt-uid-6139" aria-labelledby="gwt-uid-6138">
<div class="v-slot v-slot-hide-indicator">
<div class="v-formlayout v-layout v-widget hide-indicator v-formlayout-hide-indicator">
<table cellpadding="0" cellspacing="0" role="presentation">
<colgroup>
<col>
</colgroup>
<tbody>
<tr class="v-formlayout-row v-formlayout-firstrow v-formlayout-lastrow">
<td class="v-formlayout-captioncell">
<div class="v-caption v-caption-tiny v-caption-smalllabel"></div>
</td>
<td class="v-formlayout-errorcell">
<div class="v-formlayout-error-indicator"></div>
</td>
<td class="v-formlayout-contentcell">
<div class="v-label v-widget tiny v-label-tiny smalllabel v-label-smalllabel v-label-undef-w" style="">CHDB </div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="v-slot v-slot-hide-indicator">
<div class="v-formlayout v-layout v-widget hide-indicator v-formlayout-hide-indicator">
<table cellpadding="0" cellspacing="0" role="presentation">
<colgroup>
<col>
</colgroup>
<tbody>
<tr class="v-formlayout-row v-formlayout-firstrow v-formlayout-lastrow">
<td class="v-formlayout-captioncell">
<div class="v-caption v-caption-tiny v-caption-smalllabel"></div>
</td>
<td class="v-formlayout-errorcell">
<div class="v-formlayout-error-indicator"></div>
</td>
<td class="v-formlayout-contentcell">
<div class="v-label v-widget tiny v-label-tiny smalllabel v-label-smalllabel v-label-undef-w">F1080 </div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</td>
</tr>
Здесь Тип блока - это тот, который должен быть принят в качестве родительского элемента, и это значение не изменится, но следующие элементы CHDB и F1080 изменяется, и нам нужно проверить эти 2 элемента.
Для этого мне нужен XPath, который принимает тип Unit в качестве родительского элемента и значение, которое мы получаем в качестве дочернего элементаи нужно это для нескольких значений в одном и том же шаблоне, так что это будет полезно.
В настоящее время используется
(//tr//child::td[contains(@class,'v-formlayout-contentcell')]//child::div[contains(@id,'gwt-uid')])[1]
(//tr//child::td[contains(@class,'v-formlayout-contentcell')]//child::div[contains(@id,'gwt-uid')])[2]
, что не является хорошей практикой, следовательно, принимая 1-е значение в качестве родителяа затем в детстве или с помощью функции родного брата нужен многоразовый XPath