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

Answered using GPT-4o Mini by GPT4oMini.app

Question:

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

Answer:

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

  1. Найти индекс столбца с заголовком "Базис".
  2. Использовать этот индекс для выбора соответствующих <td> в строках <tr>.

Вот пример XPath, который выполняет эту задачу:

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

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

  1. Находит все <th> с текстом "Базис".
  2. Определяет индекс этого столбца.
  3. Выбирает все <td> в строках <tr>, которые находятся в том же столбце, что и "Базис".

Обратите внимание, что данный XPath может потребовать корректировки в зависимости от структуры вашего HTML-док