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

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

Вопрос:

переделай xpath (//div[contains(text(),'Пшеница')]//following::table[1]//tbody//tr)[1]/td так, чтобы он выбирал только тот td, который соответствует th "Базис" в элементе

<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><tbody><tr><td style="padding:5px;">Юг Руси, АО</td><td>пшеница 3 класса протеин 15,3% и выше, клейк. 23%, натура 770г/л, сорн. примесь 2%, зерн. примесь 5%</td></tr></tbody></table>
Ответ:

Чтобы выбрать только тот элемент <td>, который соответствует заголовку <th> "Базис" в указанной таблице, можно использовать следующий XPath:

//div[contains(text(),'Пшеница')]//following::table[1]//thead/tr/th[text()='Базис']/parent::tr/following-sibling::tr[1]/td[1]

Этот XPath делает следующее:

  1. Находит <div>, содержащий текст "Пшеница".
  2. Ищет первую таблицу, следующую за этим <div>.
  3. Находит заголовок <th> с текстом "Базис".
  4. Переходит к родительскому элементу <tr>, содержащему этот заголовок.
  5. Находит первую строку <tr> в <tbody>, которая следует за заголовком.
  6. Извлекает первый элемент <td> из этой строки, который соответствует заголовку "Базис".

Таким образом, вы получите нужный элемент <td>, соответствующий заголовку "Базис".