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

  • Автор темы Автор темы L3R
  • Дата начала Дата начала

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);
 
собственно сабж
Как посчитать число элементов типа 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
Отвечаю самому же себе и извеняюсь за свою невнимательность использовал .Count() - со скобками а нужно было просто Count , давно не кодил наверное...
 
Да спасиб , уже понял
 
а foreach - работает в 3 зено ? вернее в 2 и 3.5 фреймфорке?
 
Добрый день!
Такой вопрос:

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

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


Вид самого меню:
93a1a3656d41.jpg


Пишу следующее
Код:
Развернуть Свернуть Копировать
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 смотрел, ничего не нашел =(
 
Форум читал, 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 элемент "Поднять в поиске", совершит клик. И так пока не кончатся элементы массива.
 

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