XPath для выбора <td> по заголовку "Базис" в таблице

Ответ дан с помощью GPT-4o Mini от GPT4oMini.app

Вопрос:

переделай 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>, которые находятся в первой позиции (то есть соответствуют заголовку "Базис"). Если структура таблицы изменится, и вам нужно будет выбирать по другому критерию, вы можете использовать более сложные условия.