Помогите, пожалуйста, с кодом. GetAttribute в переменную

borzd

Client
Регистрация
06.04.2019
Сообщения
24
Благодарностей
3
Баллы
3
Есть код:

Код:
HtmlElement he = instance.ActiveTab.FindElementByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li[project.Variables["li_count"].Value]/descendant::span[3]");
string attribute = he.GetAttribute("innerhtml");
project.Variables["items_count"].Value = attribute;
Выдаёт такие ошибки -
Компиляция кода Ошибка в действии "CS1026" "ожидалась )". [Строка: 0; Cтолбец: 135]
Компиляция кода Ошибка в действии "CS1002" "ожидалась ;". [Строка: 0; Cтолбец: 143]
Компиляция кода Ошибка в действии "CS1002" "ожидалась ;". [Строка: 0; Cтолбец: 173]
Компиляция кода Ошибка в действии "CS1525" "Недопустимый терм ")" в выражении". [Строка: 0; Cтолбец: 173]

http://prntscr.com/ncxb6l - тут наглядно на места в коде

Собственно код с форума и интернетов по кускам. Синтаксис вроде бы (не пинайте больно если не так) верный. А он всё равно ругается.

____________

Должен идти по порядку по Ли - поэтому переменная в xPath запросе для счётчика.

Дальше в зависимости от значения items_count - выполнение действий
 

Alex733

Client
Регистрация
27.11.2017
Сообщения
328
Благодарностей
239
Баллы
43
  • HtmlElement he = instance.ActiveTab.FindElementByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li[project.Variables["li_count"].Value]/descendant::span[3]");
Приблизительно так:
C#:
HtmlElement he = instance.ActiveTab.FindElementByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li["+project.Variables["li_count"].Value+"]/descendant::span[3]");
 
  • Спасибо
Реакции: borzd

borzd

Client
Регистрация
06.04.2019
Сообщения
24
Благодарностей
3
Баллы
3
Приблизительно так:
C#:
HtmlElement he = instance.ActiveTab.FindElementByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li["+project.Variables["li_count"].Value+"]/descendant::span[3]");
Спасибо! Так пробовал не компилировал.

А вот так получилось:
Код:
instance.ActiveTab.FindElementsByXPath("//ul[@class='s-see-all-indexbar-column'][text() ='" + project.Variables["li_count"].Value + "']/descendant::li[1]/descendant::span[3]");
В итоге код выглядит так -
Код:
HtmlElementCollection itemsCount = instance.ActiveTab.FindElementsByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li[text() ='" + project.Variables["li_count"].Value + "']/descendant::span[3]");
string attribute = itemsCount.GetAttribute("innerhtml");
project.Variables["items_count"].Value = attribute;
Но теперь новая напасть (((


Компиляция кода Ошибка в действии "CS1061" ""ZennoLab.CommandCenter.HtmlElementCollection" не содержит определение для "GetAttribute". Не удалось найти метод расширения "GetAttribute", принимающий первый аргумент типа "ZennoLab.CommandCenter.HtmlElementCollection" (пропущена директива using или ссылка на сборку?)". [Строка: 1; Cтолбец: 31]
 

borzd

Client
Регистрация
06.04.2019
Сообщения
24
Благодарностей
3
Баллы
3
Пробовал вот так:

Код:
var x = instance.ActiveTab.FindElementsByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li[text() ='" + project.Variables["li_count"].Value + "']/descendant::span[3]");
var y = x.GetAttribute("InnerHtml");
return y;
Компиляция кода Ошибка в действии "CS1061" ""ZennoLab.CommandCenter.HtmlElementCollection" не содержит определение для "GetAttribute". Не удалось найти метод расширения "GetAttribute", принимающий первый аргумент типа "ZennoLab.CommandCenter.HtmlElementCollection" (пропущена директива using или ссылка на сборку?)". [Строка: 1; Cтолбец: 11]
 

gevolushn

Известная личность
Регистрация
25.03.2019
Сообщения
518
Благодарностей
269
Баллы
63
Пробовал вот так:

Код:
var x = instance.ActiveTab.FindElementsByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li[text() ='" + project.Variables["li_count"].Value + "']/descendant::span[3]");
var y = x.GetAttribute("InnerHtml");
return y;
Компиляция кода Ошибка в действии "CS1061" ""ZennoLab.CommandCenter.HtmlElementCollection" не содержит определение для "GetAttribute". Не удалось найти метод расширения "GetAttribute", принимающий первый аргумент типа "ZennoLab.CommandCenter.HtmlElementCollection" (пропущена директива using или ссылка на сборку?)". [Строка: 1; Cтолбец: 11]
Del.
 
Последнее редактирование:

Alex733

Client
Регистрация
27.11.2017
Сообщения
328
Благодарностей
239
Баллы
43
  • Спасибо
Реакции: borzd

borzd

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

borzd

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

borzd

Client
Регистрация
06.04.2019
Сообщения
24
Благодарностей
3
Баллы
3
Приблизительно так:
C#:
HtmlElement he = instance.ActiveTab.FindElementByXPath("//ul[@class='s-see-all-indexbar-column'][1]/descendant::li["+project.Variables["li_count"].Value+"]/descendant::span[3]");
Кривые мои ручки... Всё ты верно написал. Спасибо! Мой вариант не срабатывал. Хоть и компелировался.

А ларчик просто открывался в итоге.

Код:
return instance.ActiveTab.FindElementByXPath("//ul[@class='s-see-all-indexbar-column']["+project.Variables["li_count"].Value+"]/descendant::li[1]/descendant::span[3]", 0).InnerText;
 
  • Спасибо
Реакции: Kinomanius

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