Как переделать этот С# код?

iZennoman

Client
Регистрация
25.01.2016
Сообщения
97
Благодарностей
6
Баллы
8
Есть вот такой вот код, кстати позаимствованный из этого форума:
Код:
var tab = instance.ActiveTab; //получаем активный таб инстанса
int countOfIterations = 20; //максимальное число проверок элемента на странице
int pause = 3; //пауза в секундах после каждой проверки элемента на странице
//главный цикл
for(int i=0;i<countOfIterations;i++)
{
    var he = tab.FindElementByAttribute("textarea","name","text","text",0); // поиск элемента
    if(!he.IsVoid) //проверка на присутствие элемента
    {
        // если нашли
        return he.GetAttribute("value"); //вернет значение атрибута value
        he.SetValue("hi there","Full",false); //установит значение
        he.RiseEvent("click","Full"); //событие клик
        break; //выход из цикла
    }
    System.Threading.Thread.Sleep(pause*1000); // перевод паузы в миллисекунды
}
Вообщем в чём суть, этот скрипт ждет пока появится определенный элемент в странице и если он появился, то заканчивает ожидание, если не появился продолжает ждать.

Мне нужно наоборот сделать, чтобы если этот скрипт не находит такие-то атрибуты на странице, то останавливается, если находит то продолжает ждать до тех пор, пока не исчезнет этот элемент со страницы.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Код:
var tab = instance.ActiveTab; //получаем активный таб инстанса
int countOfIterations = 20; //максимальное число проверок элемента на странице
int pause = 3; //пауза в секундах после каждой проверки элемента на странице
//главный цикл
for(int i = 0; i < countOfIterations; i++)
{
    var he = tab.FindElementByAttribute("textarea", "name", "text", "text", 0); // поиск элемента
    if(he.IsVoid) //проверка на присутствие элемента
    {
        // если НЕ нашли
        break; //выход из цикла
    }
    System.Threading.Thread.Sleep(pause * 1000); // перевод паузы в миллисекунды
}
 
  • Спасибо
Реакции: iZennoman

iZennoman

Client
Регистрация
25.01.2016
Сообщения
97
Благодарностей
6
Баллы
8
Dimionix, спасибо) уже не первый раз помогаешь, и все советы работают на ура)
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113
А тупой вопрос, как перейти на страничку на эту что бы он ждал? :-)
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
  • Спасибо
Реакции: Gfoblin

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Код:
if (instance.ActiveTab.IsBusy) instance.ActiveTab.WaitDownloading();
добавить еще если нужно ждать загрузки
 
  • Спасибо
Реакции: Gfoblin

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
  • Спасибо
Реакции: Gfoblin

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 596
Благодарностей
1 014
Баллы
113

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63
Полезный код! Подскажите, а как его использовать, какие элементы он может ждать и как прописать эти элементы в коде?
Может ждать появления какого то текста на странице или каких то тегов, или и то и другое?
Понимаю, что прописывается в этой строке:
var he = tab.FindElementByAttribute("textarea", "name", "text", "text", 0); // поиск элемента,
но не соображу, что писать вместо этого - "textarea", "name", "text", "text", 0?
Буду благодарен за несколько примеров использования данного кода.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
var he = tab.FindElementByAttribute("textarea", "name", "text", "text", 0); // поиск элемента,
но не соображу, что писать вместо этого - "textarea", "name", "text", "text", 0?
Это параметры как в конструкторе действий (Тэг, Имя атрибута, Значение, Тип поиска, № совпадения).

Screenshot_1.png
 
  • Спасибо
Реакции: Igorii

Igorii

Client
Регистрация
21.02.2015
Сообщения
371
Благодарностей
297
Баллы
63

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