//Можно код конечно ещё крутить так и эдак. Например: а зачем нам делать паузу в одну секунду, если мы и так уже нашли нужное количество элементов и знаем что текущий шаг цикла - последний? Поможет переделка в while(true):
Tab Tab1 = instance.ActiveTab;
int intCurrElements = 0; //в этой переменной будет текущее количество элементов
int intTriesCounter=0; //в этой переменной будет количество совершённых попыток (для таймаута)
HtmlElementCollection colElements; //строка нужна здесь если после цикла мы будем перебирать собранные элементы
while(true) {
colElements = Tab1.FindElementByXPath("//путь_элементов_которые_собираем", 0); //здесь может быть получение результатов по регулярке, не суть. Здесь формируем семейство элементов по XPath
intCurrElements = colElements.Count; //здесь может быть подсчёт числа совпадений с регуляркой.
if (intCurrElements>1) break; //прерываем "бесконечный" цикл если нашли 2 и более элементов
if (++intTriesCounter>10) {
project.SendErrorToLog("Не дождались", true);
return null; //выходим из сниппета по красной ветке
}
Thread.Sleep(1000); //пауза в одну секунду перед переходом к следующему шагу цикла
}
Tab Tab1 = instance.ActiveTab;
int intCurrElements = 0; //в этой переменной будет текущее количество элементов
int intTriesCounter=0; //в этой переменной будет количество совершённых попыток (для таймаута)
HtmlElementCollection colElements; //строка нужна здесь если после цикла мы будем перебирать собранные элементы
while(intCurrElements<2) {
colElements = Tab1.FindElementByXPath("//путь_элементов_которые_собираем", 0); //здесь может быть получение результатов по регулярке, не суть. Здесь формируем семейство элементов по XPath
intCurrElements = colElements.Count; //здесь может быть подсчёт числа совпадений с регуляркой.
if (++intTriesCounter>10) {
project.SendErrorToLog("Не дождались", true);
return null; //выходим из сниппета по красной ветке
}
Thread.Sleep(1000); //пауза в одну секунду перед переходом к следующему шагу цикла
}