Как посчитать число элементов типа HTMLElement в массиве типа HTMLElementcollection

L3R

Client
Регистрация
19.08.2011
Сообщения
16
Благодарностей
1
Баллы
0
собственно сабж
Как посчитать число элементов типа HTMLElement в массиве типа HTMLElementcollection

Код:
HtmlElementCollection hs;
HtmlElement he;

hs=instance.GetTabByAddress("tum").GetDocumentByAddress("0").FindElementsByAttribute("li", "class", "spotlight_item", "text");
как найти кол-во всех элементов в hs
чтоб в цикле перебрать все элементы от 0 до i i[0;n]
Код:
for (i=0;i++; i<=n)
{
he=instance.GetTabByAddress("tum").GetDocumentByAddress("0").FindElementByAttribute("li", "class", "spotlight_item", "text", i);
}
и например he.RiseEvent("click", true);
 

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
346
Баллы
63
собственно сабж
Как посчитать число элементов типа HTMLElement в массиве типа HTMLElementcollection

Код:
HtmlElementCollection hs;
HtmlElement he;

hs=instance.GetTabByAddress("tum").GetDocumentByAddress("0").FindElementsByAttribute("li", "class", "spotlight_item", "text");
как найти кол-во всех элементов в hs
чтоб в цикле перебрать все элементы от 0 до i i[0;n]
Код:
for (i=0;i++; i<=n)
{
he=instance.GetTabByAddress("tum").GetDocumentByAddress("0").FindElementByAttribute("li", "class", "spotlight_item", "text", i);
}
и например he.RiseEvent("click", true);
JavaScript:
HtmlElementCollection hs;
HtmlElement he;

hs=instance.GetTabByAddress("tum").GetDocumentByAddress("0").FindElementsByAttribute("li", "class", "spotlight_item", "text");

// собственно вот
int count = hs.Elements.Count;
// а в цикле так можно сделать
for (int i = 0; i < hs.Elements.Count; i++)
{
   ... что то делаем
}
// или так 
foreach (HtmlElement he in hs.Elements)
{
   ... что то делаем
}
 
  • Спасибо
Реакции: ragdai

L3R

Client
Регистрация
19.08.2011
Сообщения
16
Благодарностей
1
Баллы
0
Отвечаю самому же себе и извеняюсь за свою невнимательность использовал .Count() - со скобками а нужно было просто Count , давно не кодил наверное...
 

L3R

Client
Регистрация
19.08.2011
Сообщения
16
Благодарностей
1
Баллы
0
Да спасиб , уже понял
 

L3R

Client
Регистрация
19.08.2011
Сообщения
16
Благодарностей
1
Баллы
0
а foreach - работает в 3 зено ? вернее в 2 и 3.5 фреймфорке?
 

shade

Client
Регистрация
19.11.2010
Сообщения
580
Благодарностей
346
Баллы
63

Leoneed

Client
Регистрация
03.05.2015
Сообщения
53
Благодарностей
38
Баллы
18
Добрый день!
Такой вопрос:

На странице несколько элементов в выпадающих меню.
Надо сишарпом жамкнуть на 1 и тот же элемент во всех меню.

Элемент в коде (выделено единственное различие между всеми меню):


Вид самого меню:


Пишу следующее
Код:
HtmlElementCollection elements = instance.ActiveTab.FindElementsByAttribute("a","innerhtml","icon-arrow-up","regexp");
for (int i=0; i<elements.Count; i++)
{
    var allu = elements.GetByNumber(i);
    allu.RiseEvent("click","Full");
}
И он жамкает только по первому совпадению в "elements".

В сишарпе не силён, поэтому не понимаю, что не правильно написал.

Форум читал, Wiki смотрел, ничего не нашел =(
 

romasa464

Client
Регистрация
18.06.2017
Сообщения
69
Благодарностей
12
Баллы
8
Форум читал, Wiki смотрел, ничего не нашел =(
Ну так он должен жмакнуть сперва на кнопку "Редактировать", а затем уже на кнопки которые внутри.
А вы по сути его учите прокликивать только кнопку "Редактировать", верно?

Логичнее сделать что-то вроде:

Код:
HtmlElementCollection elements = instance.ActiveTab.FindElementsByAttribute("a","innerhtml","icon-arrow-up","regexp");
HtmlElementCollection elementsTwo = instance.ActiveTab.FindElementsByAttribute(здесь атрибуты кнопки "поднять в поиске");
for (int i=0; i<elements.Count; i++)
{
    var allu = elements.GetByNumber(i);
    allu.RiseEvent("click","Full");
    var clickTwo = elementsTwo.GetByNumber(i);
    clickTwo.RiseEvent("click","Full");
}
Это примерное решение, могу накосячить, сам только неделю C# учу. Суть в чём: вы создаёте 2 коллекции элементов. В первой все кнопки "Редактировать", во второй все кнопки "Поднять в поиске". Далее, вы заводите счётчик с переменной i, исходя из значения которой берётся номер элемента из массива. По логике у каждой кнопки "Редактировать", есть своя кнопка "Поднять в поиске".

Вот он и будет доставать из первого массива 0 элемент "Редактировать", совершит клик, достанет из второго массива 0 элемент "Поднять в поиске", совершит клик. Далее, пойдёт по счётчику во второй цикл, из первого массива 1 элемент "Редактировать", совершит клик, достанет из второго массива 1 элемент "Поднять в поиске", совершит клик. И так пока не кончатся элементы массива.
 

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