Скорректируй xpath //table[@class='table']//thead//tr/th[text()='Цена без НДС']/../following-sibling::td[1] для получения значения "16,30 руб./кг" из таблицы <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>пшеница 3 класса протеин 15,3% и выше, клейк. 23%, натура 770г/л, сорн. примесь 2%, зерн. примесь 5%</td><td>16,30 руб./кг</td><td>+10% НДС</td></tr></tbody></table> через привязку к названию столбца. Индексы столбцов могут меняться
Чтобы скорректировать ваш XPath для получения значения "16,30 руб./кг" из таблицы, можно использовать следующий подход. Вместо того чтобы полагаться на фиксированный индекс столбца, мы можем использовать относительное позиционирование на основе заголовка столбца "Цена без НДС".
Вот исправленный XPath:
//table[@class='table']//thead//tr/th[text()='Цена без НДС']/../following-sibling::td[1]
Однако, чтобы правильно получить значение из нужного столбца, нужно немного изменить XPath, чтобы он искал соответствующий <td>
в той же строке, где находится заголовок "Цена без НДС". Вот как это можно сделать:
//table[@class='table']//thead//tr/th[text()='Цена без НДС']/ancestor::tr/following-sibling::tr[1]/td[3]
В этом XPath:
//table[@class='table']//thead//tr/th[text()='Цена без НДС']
— находим заголовок столбца "Цена без НДС"./ancestor::tr
— поднимаемся к родительскому <tr>
, который содержит заголовки./following-sibling::tr[1]
— переходим к следующей строке <tr>
, которая содержит данные./td[3]
— выбираем третий <td>
, который соответствует значению "16,30 руб./кг".Этот XPath будет работать независимо от изменения индексов столбцов, так как он привязан к заголовку.