xpath положить результат в переменную.

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
Всемогущий all к тебе взываю ибо бездарь.

xphat.jpg

Есть сайт. При помощи xpath //*[@id="content"]/article/style/text() нахожу нужное мне содержимое.
Как теперь поместить это содержимое в обычную переменную?
(форум читал, всякие примеры пробовал, итог как правило такой:
Компиляция кода Ошибка в действии "CS1525" "Недопустимый терм ")" в выражении". [Строка: 0; Cтолбец: 89]
)
 

GrafSpell

Client
Регистрация
14.07.2017
Сообщения
30
Благодарностей
11
Баллы
8
если нужно получить стили, то будет примерно так.
Код:
instance.ActiveTab.FindElementByXPath("//*[@id="content"]/article/style/text()", 0).GetAttribute("style");
 

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
Прошу все же не пинать ногами, но наберусь наглости и спрошу. Этой строчки в кубике достаточно и результат должен появиться в переменной Variable30?
ProjectMaker for ZennoPoster v5.29.0.0 by ZennoLab.com.jpg


Пробовал разные варианты:
Код:
var x = instance.ActiveTab.FindElementByXPath("//*[@id="content"]/article/style/text()", 0).GetAttribute("style");
return x;
и так:
Код:
var x = instance.ActiveTab.FindElementByXPath("//*[@id="content"]/article/style/text()",0);
var y = x.GetAttribute("style");
return y;
результат особо не меняется
Компиляция кода Ошибка в действии "CS1525" "Недопустимый терм ....
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Попробуй
Код:
var x = instance.ActiveTab.FindElementByXPath("//*[@id='content']/article/style",0);
if(!x.IsVoid) return x.InnerText;
 

GrafSpell

Client
Регистрация
14.07.2017
Сообщения
30
Благодарностей
11
Баллы
8
если это один и тот же сайт, то вот готовый вариант, тебе останется только регуляркой забрать ссылку на изображение.

Код:
instance.ActiveTab.FindElementByXPath("//figure[contains(@class,'entry-featured-media')]", 0).GetAttribute("style");
в результате получаем

background-image: url(https://*******.ru/wp-content/uploads/2019/04/Depositphotos_12764913_l-2015-758x426.jpg);
 

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
если это один и тот же сайт, то вот готовый вариант, тебе останется только регуляркой забрать ссылку на изображение.

Код:
instance.ActiveTab.FindElementByXPath("//figure[contains(@class,'entry-featured-media')]", 0).GetAttribute("style");
в результате получаем

background-image: url(https://*******.ru/wp-content/uploads/2019/04/Depositphotos_12764913_l-2015-758x426.jpg);
Где? Где мы в результате получаем? У меня в переменной Variable30 просто скромное - ОК.
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
Где? Где мы в результате получаем? У меня в переменной Variable30 просто скромное - ОК.
Этот сниппет пробовал?
Код:
var x = instance.ActiveTab.FindElementByXPath("//*[@id='content']/article/style",0);
if(!x.IsVoid) return x.InnerText;
 

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
Этот сниппет пробовал?
Код:
var x = instance.ActiveTab.FindElementByXPath("//*[@id='content']/article/style",0);
if(!x.IsVoid) return x.InnerText;
Конечно попробовал. Кубик не ругается, но в переменной Variable30 нет даже ОК, как в варианте выше
 

GrafSpell

Client
Регистрация
14.07.2017
Сообщения
30
Благодарностей
11
Баллы
8
Где? Где мы в результате получаем? У меня в переменной Variable30 просто скромное - ОК.
результат получить можно 2-мя способами.
1.
Код:
return instance.ActiveTab.FindElementByXPath("//figure[contains(@class,'entry-featured-media')]", 0).GetAttribute("style");
2.
Код:
project.Variables["Имя_Переменной_куда положить_результат"].Value = instance.ActiveTab.FindElementByXPath("//figure[contains(@class,'entry-featured-media')]", 0).GetAttribute("style");
 
  • Спасибо
Реакции: Mutant

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
результат получить можно 2-мя способами.
1.
Код:
return instance.ActiveTab.FindElementByXPath("//figure[contains(@class,'entry-featured-media')]", 0).GetAttribute("style");
2.
Код:
project.Variables["Имя_Переменной_куда положить_результат"].Value = instance.ActiveTab.FindElementByXPath("//figure[contains(@class,'entry-featured-media')]", 0).GetAttribute("style");
Заработали оба варианта!
Пусть у тебя не кончаются деньги в кошельке и молодые любовницы в твоей шикарной машине :-) Огромное человеческое спасибо.
 

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
ttt.jpg



Снова прошу помощи у корифеев. Задача та же. нахожу через xpath .//*[@class='article-image main']/figure/div/img нужное мне содержимое
Задача та же - поместить найденное в обычную переменную.
Делаю по образу и подобию примера выше. Но, не выходит у меня каменный цветок хоть плач.
 

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28

C#:
return instance.ActiveTab.FindElementByXPath(".//*[@class='article-image main']/figure/div/img", 0);
Как то так пробовал. Ну и вариации на тему...

C#:
return instance.ActiveTab.FindElementByXPath(".//*[@class='article-image main']/figure/div/img", 0)
.GetAttribute("img style");
Увы, не силен я в С#
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113
Посмотреть вложение 44311

Мне кажется, что в GetAttribute("style"); явно должно быть не "style"
строка рабочая, я только что проверил. ошибок компиляции нет. просто пустое возвращает. где то у тебя в начале кода ошибка.
покажи весь код кубика и ссылку на сайт где надо забрать значение, а то без источника трудно понять что не так в xpath
 

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
Да, все правильно, ошибку выдавал другой кубик. Ваш код выдает пустой результат в переменую

Собственно вот сам сайт:


Задача - забрать картинку перед новостью.

Я это сделал при помощи регулярки на данный момент, но задача актуальна, прежде всего в образовательных целях.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113
Задача - забрать картинку перед новостью.
столько понаписали в этой теме, а надо было картинку забрать..... сразу же надо говорить что надо в конце получить, телепаты же на марсе живут, а не тут на форуме
C#:
return instance.ActiveTab.FindElementByXPath("//*/div[@class='article-image main']/figure/div/img", 0).GetAttribute("src");
вот URL картинки возвращает , а не стиль. стиль кстати забирать указать style вместо src
 
  • Спасибо
Реакции: Mutant

Mutant

Client
Регистрация
19.09.2014
Сообщения
194
Благодарностей
36
Баллы
28
столько понаписали в этой теме, а надо было картинку забрать..... сразу же надо говорить что надо в конце получить, телепаты же на марсе живут, а не тут на форуме
C#:
return instance.ActiveTab.FindElementByXPath("//*/div[@class='article-image main']/figure/div/img", 0).GetAttribute("src");
вот URL картинки возвращает , а не стиль. стиль кстати забирать указать style вместо src
Спасибо тебе, добрый человек. Все работает как нужно
 

timoxa949

Client
Регистрация
16.11.2018
Сообщения
158
Благодарностей
27
Баллы
28

Valandersi

Client
Регистрация
19.01.2015
Сообщения
1 923
Благодарностей
1 123
Баллы
113
  • Спасибо
Реакции: timoxa949

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