переделай xpath //div[contains(text(),'Пшеница')]//following::table[1]//tr/td[position() = //div[contains(text(),'Пшеница')]//following::table[1]//th[text()='Базис']/position()], чтобы он работал в элементе <tbody><tr> <td style="padding:5px;"> Юг Руси, АО </td> <td>пшеница 3 класса протеин 15,3% и выше, клейк. 23%, натура 770г/л, сорн. примесь 2%, зерн. примесь 5%</td> <td>
Чтобы ваш XPath работал с элементом <tbody><tr>
, вам нужно немного изменить его, чтобы он корректно находил нужные элементы в таблице. Предположим, что вы хотите получить значение из ячейки, которая соответствует определенной позиции в строке таблицы, где заголовок равен "Базис".
Вот пример, как можно переписать ваш XPath:
//div[contains(text(),'Пшеница')]//following::table[1]//tbody/tr/td[position() = //div[contains(text(),'Пшеница')]//following::table[1]//th[text()='Базис']/position()]/following-sibling::td[1]]
В этом XPath:
div
, содержащий текст "Пшеница".div
.<tbody>
, а затем к строкам <tr>
.position()
для получения позиции заголовка "Базис" и находим соответствующую ячейку <td>
.Обратите внимание, что following-sibling::td[1]
используется для получения следующей ячейки после той, которая соответствует заголовку "Базис". Если вам нужно получить конкретную ячейку, измените индекс в following-sibling::td[n]
на нужный вам.