Привет имеется часть код страницы, не могу спарсить элементы одного уровня
<tr class="even" role="row">
<td class="text-left" data-sort="6">TEXT</td>
<td class="text-right" data-sort="18">
<td> 102 </td>
<td class="text-right" data-sort="19">11</td>
<td> 14 </td>
<td class="text-right" data-sort="16">
<td data-sort="15.84">0</td>
</tr>
Нужно спарсит строку <td> 102 </td>, на прямую не получиться т.к. идет список <tr class="even" role="row"> и искать нужно уже внутри.
Нахожу нужный заголовок по TEXT, а как спарсить уже на одном уровне не знаю
//td[@class='text-left' and contains(text(), 'TEXT')]
Что нужно дописать к моему коду?
Как я понял, нужно получить значения узлов td, которые не содержат атрибутов.
XPath-выражение может выглядеть следующим образом:
string xpath = "//tr[td[@class='text-left' and contains(text(), 'TEXT')]]/td[not(@*)]";
Ищется узел tr, содержащий узел td с нужными атрибутами и текстом. А потом берутся узлы td без атрибутов.
// Получаем один (первый) элемент td
var node = doc.SelectSingleNode(xpath);
// Получаем все элементы td
var nodes = doc.SelectNodes(xpath);
решил проблему так
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using System.Net;
string text = driver.FindElement(By.XPath("//td[@class='text-left' and contains(text(), 'TEXT']/parent::tr/td[n]")).Text;
В проекте много библиотек, но использовал для selenium webdriver
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости