Добрый.
Есть вот такая структура сайта, что то похожее на таблицу, но не таблица, а все на динамических дивах.
Мне нужно найти циферку, она может быть в любом фиолетовом прямоугольнике
Структура
Есть большой блок, я его выделил красным, там лежит все что мне нужно.
В нем n-ое кол-во блоков, выделил синим
В каждом синем есть несколько столбцов их я выделил зеленым
В каждом зеленом столбце несколько строчек, они фиолетовые. и внутри фиолетовых строчек лежит спан с нужным мне текстом.
Проблема
Сделал кучу циклов, но ищется элемент очень долго от 2 до 5 сек, в зависимости от синих блоков.
Как я сделал.
Собрал в html коллекцию все синие блоки.
Дальше прохожу несколькими циклами по всему и ищу контейн моего числа...
Как можно оптимизировать мои циклы и находить значение быстрее?
кажется что просто должен искать в html, 1 раз все засовываю в коллекцию, но ищется все равно очень долго...
спасибо
Есть вот такая структура сайта, что то похожее на таблицу, но не таблица, а все на динамических дивах.
Мне нужно найти циферку, она может быть в любом фиолетовом прямоугольнике
Структура
Есть большой блок, я его выделил красным, там лежит все что мне нужно.
В нем n-ое кол-во блоков, выделил синим
В каждом синем есть несколько столбцов их я выделил зеленым
В каждом зеленом столбце несколько строчек, они фиолетовые. и внутри фиолетовых строчек лежит спан с нужным мне текстом.
Проблема
Сделал кучу циклов, но ищется элемент очень долго от 2 до 5 сек, в зависимости от синих блоков.
Как я сделал.
Собрал в html коллекцию все синие блоки.
HtmlElementCollection outcome_container = instance.ActiveTab.FindElementsByAttribute("div", "class", "sip-MarketGroup", "regexp");
Дальше прохожу несколькими циклами по всему и ищу контейн моего числа...
C#:
for (int i=0; i<=outcome_container.Count(); i++){
HtmlElement check_isvoid = outcome_container.GetByNumber(i).FindChildByAttribute();
if (check_isvoid.IsVoid) continue;
//пробегаемся по каждой колонке
HtmlElementCollection number_col = outcome_container.GetByNumber(i).FindChildrenByAttribute();
for (int j=0; j<=number_col.Count(); j++){
HtmlElementCollection number_string = number_col.GetByNumber(j).FindChildrenByAttribute();
for(int k=0; k<=number_string.Count(); k++){
//сюда записываю что ищу
if(number_string.GetByNumber(k).GetAttribute("innertext").Contains("1.25")){
project.SendInfoToLog("ok");
number_string.GetByNumber(k).RiseEvent("click","Full");
return "ok";
}
}
}
кажется что просто должен искать в html, 1 раз все засовываю в коллекцию, но ищется все равно очень долго...
спасибо