Не берется InnerText из пути XPath

temass

Client
Регистрация
06.06.2015
Сообщения
98
Благодарностей
3
Баллы
8
Друзья, всем привет! Такая проблема, пытаюсь взять InnerText но в ответ получаю пустоту, Xpath путь норамльно отрабатывает, вот пациент https://www.avito.ru/gelendzhik/kvartiry/1-k_kvartira_62_m_35_et._1796527923
вот такой код

C#:
var floor = Tab1.FindElementByXPath("//span[contains(text(), 'Этаж')]/ancestor::li/text()[last()]", 0).InnerText;
что делаю не так? знаю, что можно взять li и регуляркой оставить значение, но...хочется как то по умному
 

ebrwebrw

Client
Регистрация
20.08.2018
Сообщения
221
Благодарностей
164
Баллы
43
xpath проверь, он 2 элемента находит подобных на странице и их height-1
 

ebrwebrw

Client
Регистрация
20.08.2018
Сообщения
221
Благодарностей
164
Баллы
43
C#:
HtmlElementCollection itemsCollection = instance.ActiveTab.FindElementsByXPath("//span[contains(text(), 'Этаж')]/ancestor::li");
project.SendInfoToLog("Колво элементов = " + itemsCollection.Count().ToString(), false);

foreach(HtmlElement item in itemsCollection){
project.SendInfoToLog(item.InnerText);  
project.SendInfoToLog(item.GetAttribute("height"));      
}
 

temass

Client
Регистрация
06.06.2015
Сообщения
98
Благодарностей
3
Баллы
8

temass

Client
Регистрация
06.06.2015
Сообщения
98
Благодарностей
3
Баллы
8
C#:
HtmlElementCollection itemsCollection = instance.ActiveTab.FindElementsByXPath("//span[contains(text(), 'Этаж')]/ancestor::li");
project.SendInfoToLog("Колво элементов = " + itemsCollection.Count().ToString(), false);

foreach(HtmlElement item in itemsCollection){
project.SendInfoToLog(item.InnerText);
project.SendInfoToLog(item.GetAttribute("height"));    
}
это я понимаю, мы берем у li - innertext, а вот как взять саму цифру, вот другой путь, там 1 элемент, но текстовое значение получить я не могу((
C#:
//span[contains(text(), 'Этажей в доме')]/ancestor::li/text()[last()]
интересна сама суть, я понимаю что регуляркой я могу собирать без проблем по этому пути
 

temass

Client
Регистрация
06.06.2015
Сообщения
98
Благодарностей
3
Баллы
8
у нас эта цифра не имеет никаких атрибутов, просто текст по идее, вот как ее получить, есть кто шарит или это невозможно?
 

Metrix

Client
Регистрация
03.01.2014
Сообщения
343
Благодарностей
272
Баллы
63
C#:
return instance.ActiveTab.FindElementByXPath("//span[contains(text(), 'Этаж')]/parent::li", 0).InnerText;
 

temass

Client
Регистрация
06.06.2015
Сообщения
98
Благодарностей
3
Баллы
8

Metrix

Client
Регистрация
03.01.2014
Сообщения
343
Благодарностей
272
Баллы
63
Этаж 2 берется...а нужно просто 2...походу тут без регулярки не обойтись одним XPath
Какие трудности?
Из "Этаж 2" цифру "2" можно получить, в отличие от пустого исходника?
 
  • Спасибо
Реакции: temass

temass

Client
Регистрация
06.06.2015
Сообщения
98
Благодарностей
3
Баллы
8
Какие трудности?
Из "Этаж 2" цифру "2" можно получить, в отличие от пустого исходника?
да нет, не трудности, это решение я знал, хотелось улучшить свои знания, если есть другое решение, спасибо!
 

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)