учусь находить в html элементы через xpath

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 091
Благодарностей
127
Баллы
63
учусь находить в html через xpath.

Нужно из html взять заголовок "Now Foods":

Код:
<h1 id="name" itemprop="name">Now Foods</h1>
Пробую так:

Код:
string xpath_exp = ".//h1[@itemprop='name']";
string action_ev = "get|что здесь должно быть, чтобы взять текст из заголовка";
return CommonCode.FindElementAndExecuteAction(instance, xpath_exp, action_ev);

Какой атрибут должен быть в get, чтобы взять этот заголовок в переменную?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
  • Спасибо
Реакции: alexandr939

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 604
Баллы
113
C#:
string xpath_exp = ".//h1[@itemprop='name']";
return instance.ActiveTab.FindElementByXPath(xpath_exp, 0).InnerText;
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 091
Благодарностей
127
Баллы
63
doc, Долгих лет тебе жизни!

return instance.ActiveTab.FindElementByXPath(xpath_exp, 0).InnerText;
А если попался там не InnerText, а конкретный атрибут?
 
Последнее редактирование:

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 091
Благодарностей
127
Баллы
63
return instance.ActiveTab.FindElementByXPath(xpath_exp, 0).InnerText;
А если попался там не InnerText, а конкретный атрибут?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 614
Благодарностей
4 604
Баллы
113
return instance.ActiveTab.FindElementByXPath(xpath_exp, 0).InnerText;
А если попался там не InnerText, а конкретный атрибут?
ты можешь в сниппете удалить InnerText вместе с точкой, прописать точку по новой и в выпадающем списке посмотреть все возможные варианты, что можно прописать
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 091
Благодарностей
127
Баллы
63
Я попробовал, но слишком большой разрыв между пониманием процесса и предложенными вариантами.

Т.е. из строки взять не InnerText, а величину атрибута content="548.29":
Код:
<div id="price" class="col-xs-15 col-md-16 price our-price" content="548.29" itemprop="price"> ₽548.29 </div>
Код:
string xpath_exp =".//meta[@property='og:price:amount']/@content";
return instance.ActiveTab.FindElementByXPath(xpath_exp, 0).InnerText;
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
return instance.ActiveTab.FindElementByXPath(xpath_exp, 0).GetAttribute("content");
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 091
Благодарностей
127
Баллы
63
rostonix, спасибо, но здесь, наверное, несколько другой механизм атрибута, я не доглядел:
из этой строки:
Код:
<meta property="og:price:amount" content="542.62 " />
шаблоном:
Код:
".//meta[@property='og:price:amount']/@content"
этим решением:
Код:
return instance.ActiveTab.FindElementByXPath(xpath_exp, 0).GetAttribute("content");
не находит.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
скорее всего у вас ошибка что сам элемент не находит, а не атрибут его. для получения атрибута концовка верная
 

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