Всем доброго времени суток!
Имеется цикл, который рано или поздно выдаст ошибку:
for (int i = 1; ; i++)
{
IWebElement boom = driver.FindElement(By.Id("content"));
...
...
...
}
Цикл как бы перебирает элементы с нужным id и далее проводит с ними определенный набор операций. Каждый раз кол-во данных элементов разное, поэтому предугадать момент, когда цикл сломается нельзя... или можно? :)
Каким образом можно отловить ошибку с поломанным циклом и продолжить работу? Брать весь блок в try-catch? Какое Exception брать в данном случае, если использовать try? Быть может, есть вариант без изобретения велосипедов?
Во время работы данного for происходит однократное(за один круг цикла) открытие нового окна, с переключением WebDriver на него:
driver.SwitchTo().Window(driver.WindowHandles.Last());
Возможно, есть вариант отловить отсутствие нового окна? Ошибка вылетает сразу после данной строки. На данном элементе:
IWebElement beornottobe = driver.FindElement(By.Id("Be-be"));
Но после идёт еще не малая часть кода...
Какое Exception брать в данном случае, если использовать try?
В документации сказано что это будет NoSuchElementException.
for (int i = 1; ; i++) {
IWebElement boom;
try {
boom = driver.FindElement(By.Id("content"));
} catch (NoSuchElementException) {
break; //прерываем цикл в случае ошибки
}
...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Такая ситуация, создал контракт в виде библиотеки, создал реализацию в виде консольного приложения (хост)Сбилдил все