переделай xpath //div[contains(text(),'Пшеница')]//following::table[1]//tbody/tr/td для элемента <table class="table"> <thead> <tr> <th style="white-space: nowrap;">Базис</th> <th style="white-space: nowrap;">Номенклатура</th> <th style="white-space: nowrap;">Цена без НДС</th> <th style="white-space: nowrap;">С НДС</th> </tr> </thead> чтобы брались только те td, которые соответствуют th "Базис"
Чтобы выбрать только те <td>
, которые соответствуют заголовку <th>
"Базис", можно использовать следующий XPath:
//div[contains(text(),'Пшеница')]//following::table[1]//tbody/tr/td[preceding-sibling::th[1][text()='Базис']]
Однако, поскольку в вашем примере <th>
находится в <thead>
, а <td>
в <tbody>
, правильный XPath будет выглядеть так:
//div[contains(text(),'Пшеница')]//following::table[1]//tbody/tr/td[position()=1]
Этот XPath выбирает все <td>
, которые находятся в первой позиции (то есть соответствуют заголовку "Базис"). Если структура таблицы изменится, и вам нужно будет выбирать по другому критерию, вы можете использовать более сложные условия.