Как в цикле сравнить определенный элемент на странице в c#

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Как сделать сравнение определенного элемента в цикле, есть ли он на странице или уже нет.
ISVoid - не предлагать - он не работает в цикле.

instance.ActiveTab.PageText - тоже не спасает, так как по тексту тут не сравнить - текст существует всегда.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 262
Благодарностей
5 852
Баллы
113
Как сделать сравнение определенного элемента в цикле, есть ли он на странице или уже нет.
ISVoid - не предлагать - он не работает в цикле.

instance.ActiveTab.PageText - тоже не спасает, так как по тексту тут не сравнить - текст существует всегда.
Какой элемент? Если он в конструкторе действий обрабатывается, то просто будет ошибка HTML элемент не найден и можно идти по неудачной ветке.
 

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Какой элемент? Если он в конструкторе действий обрабатывается, то просто будет ошибка HTML элемент не найден и можно идти по неудачной ветке.
Да вообще все на ajax и элементы существуют всегда и когда есть модальное окно и когда его нет. Есть один вариант только с кнопкой которая имеет при загрузке OuterHtml = <a disabled="disabled" неактивный, а после загрузки пропадает.
Вот мне надо как то составить цикл, при котором бы он ждал эту кнопку когда она будет активная.
 

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Код:
var elmButton = tab.FindElementByAttribute(
        "a",
        "outerhtml",
        @"<a\ class=""button\ media-button\ button-primary\ button-large\ media-button-gallery""\ href=""\#"">Создать\ новую\ галерею</a>",
        "regexp",
        0);
Вот как мне в цикле сравнить есть ли этот элемент или нет. IsVoid здесь не сработает. Может есть еще какие-нибудь варианты присутствие или отсутствие элемента на странице.

Мне надо дождаться чтобы этот элемент появился не странице.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 262
Благодарностей
5 852
Баллы
113
Как то так если например:
Код:
    for (int i=0;i<1000;i++){
                    if (elmButton.OuterHtml.Contains("enabled")) throw new Exception("Кнопка появилась");
                    else throw new Exception("Кнопка не появилась");
                    System.Threading.Thread.Sleep(2000);
                    }
 
  • Спасибо
Реакции: Sergodjan и aluminoter

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Как то так если например:
Код:
    for (int i=0;i<1000;i++){
                    if (elmButton.OuterHtml.Contains("enabled")) throw new Exception("Кнопка появилась");
                    else throw new Exception("Кнопка не появилась");
                    System.Threading.Thread.Sleep(2000);
                    }
Идею я понял, сейчас попробую. А зачем исключение делать.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 262
Благодарностей
5 852
Баллы
113
Идею я понял, сейчас попробую. А зачем исключение делать.
Это не обязательно, просто для примера.. там нужен выход из цикла, если условие выполняется и продолжение, если не выполняется.
 
  • Спасибо
Реакции: aluminoter

aluminoter

Client
Регистрация
11.02.2015
Сообщения
254
Благодарностей
39
Баллы
28
Это не обязательно, просто для примера.. там нужен выход из цикла, если условие выполняется и продолжение, если не выполняется.
Спасибо все отлично работает!!!
 
  • Спасибо
Реакции: VladZen

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