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

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

aluminoter

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

instance.ActiveTab.PageText - тоже не спасает, так как по тексту тут не сравнить - текст существует всегда.
 
Как сделать сравнение определенного элемента в цикле, есть ли он на странице или уже нет.
ISVoid - не предлагать - он не работает в цикле.

instance.ActiveTab.PageText - тоже не спасает, так как по тексту тут не сравнить - текст существует всегда.
Какой элемент? Если он в конструкторе действий обрабатывается, то просто будет ошибка HTML элемент не найден и можно идти по неудачной ветке.
 
Какой элемент? Если он в конструкторе действий обрабатывается, то просто будет ошибка HTML элемент не найден и можно идти по неудачной ветке.
Да вообще все на ajax и элементы существуют всегда и когда есть модальное окно и когда его нет. Есть один вариант только с кнопкой которая имеет при загрузке OuterHtml = <a disabled="disabled" неактивный, а после загрузки пропадает.
Вот мне надо как то составить цикл, при котором бы он ждал эту кнопку когда она будет активная.
 
Код:
Развернуть Свернуть Копировать
var elmButton = tab.FindElementByAttribute(
        "a",
        "outerhtml",
        @"<a\ class=""button\ media-button\ button-primary\ button-large\ media-button-gallery""\ href=""\#"">Создать\ новую\ галерею</a>",
        "regexp",
        0);

Вот как мне в цикле сравнить есть ли этот элемент или нет. IsVoid здесь не сработает. Может есть еще какие-нибудь варианты присутствие или отсутствие элемента на странице.

Мне надо дождаться чтобы этот элемент появился не странице.
 
Как то так если например:
Код:
Развернуть Свернуть Копировать
    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
Как то так если например:
Код:
Развернуть Свернуть Копировать
    for (int i=0;i<1000;i++){
                    if (elmButton.OuterHtml.Contains("enabled")) throw new Exception("Кнопка появилась");
                    else throw new Exception("Кнопка не появилась");
                    System.Threading.Thread.Sleep(2000);
                    }

Идею я понял, сейчас попробую. А зачем исключение делать.
 
Идею я понял, сейчас попробую. А зачем исключение делать.
Это не обязательно, просто для примера.. там нужен выход из цикла, если условие выполняется и продолжение, если не выполняется.
 
  • Оценить
Реакции: aluminoter
Это не обязательно, просто для примера.. там нужен выход из цикла, если условие выполняется и продолжение, если не выполняется.

Спасибо все отлично работает!!!
 
  • Оценить
Реакции: VladZen

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